> The only way that you can get *that* guarantee is by using the > milestone mechanism to limit the system to a particular milestone, as > you suggest. > > In fact, argh. This problem affects even your proposed scheme. By the > time that your patch-test-service is running, there could (in theory) be > all kinds of services running that didn't happen to depend on anything. > Maybe in practice we could ignore that possibility, but it's still > bothersome. > > Argh. Not quite back to Square One, but that certainly tosses a wrench > into most of my theories on how to solve this problem.
Argh again. Currently startd hard codes the allowable milestones. My proposal would require patching startd :( static int dgraph_set_milestone(const char *fmri, scf_handle_t *h, boolean_t norepository) { const char *cfmri, *fs; graph_vertex_t *nm, *v; int ret = 0, r; scf_instance_t *inst; boolean_t isall, isnone, rebound = B_FALSE; /* Validate fmri */ isall = (strcmp(fmri, "all") == 0); isnone = (strcmp(fmri, "none") == 0); if (!isall && !isnone) { if (fmri_canonify(fmri, (char **)&cfmri, B_FALSE) == EINVAL) goto reject; if (strcmp(cfmri, single_user_fmri) != 0 && strcmp(cfmri, multi_user_fmri) != 0 && strcmp(cfmri, multi_user_svr_fmri) != 0) { startd_free((void *)cfmri, max_scf_fmri_size); reject: log_framework(LOG_WARNING, "Rejecting request for invalid milestone \"%s\".\n", fmri); return (EINVAL); } } -Steve L. > _______________________________________________ > zones-discuss mailing list > zones-discuss@opensolaris.org _______________________________________________ zones-discuss mailing list zones-discuss@opensolaris.org