Hi Thorsten... Thorsten Frueauf wrote: > Hi Ed et al, > > see comments inline: > > Ed McKnight wrote: >> Thanks Thorsten, see inline. >> >> Thorsten Frueauf wrote: >>> Hi Ed et al, >>> >>> here are my comments: >>> >>> - usr/src/cmd/initpkg/manifest/Makefile >>> usr/src/cmd/initpkg/svcmethod/Makefile >>> >>> * copyright 2008 -> 2009 >> >> Oops. >> >>> >>> - usr/src/ipsdefs/ha-cluster/* >>> usr/src/ipsdefs/Makefile >>> >>> * I am not sure why we need that. My vote is to not deliver this. >> >> This was Nick's request. Lucia also expressed some...slight confusion >> (?) If Nick doesn't chime in (doubtful for today) to explain it more >> I'll defer it for now, and maybe we'll drop it altogether. > > OK. > >>> >>> - usr/src/cmd/initpkg/svcmethod/svc_boot_check_enabler >>> >>> * I see that line 64 says this service should be never enabled. >> >> Well, should be disabled after being run once. > > Right. What would happen if the user would by some reason enable it > again? Is it kind of idempotent?
Yes, as you noticed below. > >>> Wouldn't it be better to have this service deleted once it was run? >>> I guess the service can't delete itself, but can't this be done >>> within >>> scinstall? >> >> Umm...probably. The target task used to be done in >> <pkg>_ips_processing under scinstall without the use of a service at >> all. The scenario I'm working around is that of installing bits, then >> rebooting before running scinstall. scinstall itself didn't know >> about the task and I don't think it's important enough to introduce >> that knowledge into scinstall itself for cleanup. So, I'd have to put >> the service deletion into the package ips_processing script, which >> would work, but might be more confusing than just leaving it visible >> as having done its task. More remarks below. >> >> In wondering how deletion at install time would play/conflict with >> deletion at remove time I came to realize that I hadn't set up >> service cleanup in preremove as we do for all services we deliver. >> Updated diffs: > > Note that the diff below modifies smf_sync_enable - thought you meant > disable here (assuming it is in the ips_preremove() section, while > below looks it is ips_postinstall()). In postinstall I no longer do the smf_synch_enable: that all gets moved to the new service. In preremove I do the deletes and such on a (new) service delivered in this package. > >> *** /tmp/geta25746 Mon Mar 16 10:10:57 2009 >> --- SUNWscz.ips-processing.ksh Mon Mar 16 10:04:05 2009 >> *************** >> *** 110,117 **** >> rbac_add SUNWscz/exec_attr || errs=$(expr ${errs} + 1) >> rbac_add SUNWscz/prof_attr || errs=$(expr ${errs} + 1) >> >> - smf_synch_enable svc:/system/cluster/cl_boot_check:default >> - >> is_exclusive_zone && (update_etc_services || errs=$(expr >> ${errs} + 1)) >> >> if [ ${errs} -ne 0 ]; then >> --- 110,115 ---- >> *************** >> *** 203,208 **** >> --- 201,210 ---- >> svc:/system/cluster/cl_boot_check:default \ >> /var/svc/manifest/system/cluster/cl_boot_check.xml >> >> + smf_manifest_rm \ >> + svc:/system/cluster/cl_boot_check_enabler:default \ >> + /var/svc/manifest/system/cluster/cl_boot_check_enabler.xml >> + >> if [ ${errs} -ne 0 ]; then >> cleanup 1 >> else >> >>> >>> If this is too complicated to impelemt then I won't like the >>> service >>> being there, but won't object for the change. >> >> The entire concept of using smf services as "assemblers" requires >> run-once-then-never-again behavior. A slight twist would be to leave >> the service enabled and within it check to see if it should do >> anything, but the only effective difference then would be in svcs >> displays. IMHO, the use of smf services for assemby and tear-down is >> flawed, and this case demonstrates one of the reasons. You can see >> why I didn't want to use smf services for postinstall of the >> framework. This one case, however, is most reliably solved using this >> technique. It does generate the desired result: run once at first >> boot time after bits laid down, then never again. Minimal clutter. > > I agree - but we should make sure that if the user (for whatever > reason) enables this "run-once-and-never-again" service, it should > behave like that - ie. only do thinks once, afterwards just return 0. > > If in this specific case it will not cause any harm that > > echo "/usr/sbin/svcadm enable -s $1" >> ${upgrade_file} > > is run again, I will be happy with that as well, but should be > explained in a comment. Very good, thx, --emk > > Greets > Thorsten > > >>> Ed McKnight wrote: >>>> I need one more reviewer for this... thx, --emk >>>> >>>> Ed McKnight wrote: >>>>> Sorry for the rush--hoping to putback these changes for build 7. >>>>> >>>>> http://galileo.sfbay.sun.com/workspace/emk/sc/ws/webreviews/CO-IPS-10/ >>>>> >>>>> >>>>> Please review the changes for: >>>>> >>>>> - 6802680 Disabled service cl_boot_check:default prevents node >>>>> from boot up >>>>> Under SVR4, postinstall schedules this service for synch enable >>>>> at next boot; if it's not enabled at boot then console-login can't >>>>> be enabled. Under IPS there is no postinstall and presently, if >>>>> this is synch enabled via scinstall then there is a window between >>>>> pkg install and scinstall where if the user reboots, the login >>>>> service will not be enabled. >>>>> The fix is to deliver (only under IPS) a new service called >>>>> cl_boot_check_enabler which is delivered enabled so it runs at >>>>> package installation time, which does the necessary scheduling. >>>>> Now the bad-boot window no longer exists. >>>>> Note that this fix requires the application of the fix for >>>>> http://defect.opensolaris.org/bz/show_bug.cgi?id=7264 which >>>>> unfortunately didn't make it into 109. For people on-SWAN I made a >>>>> little installer that applies the fix. It can also be done >>>>> manually very easily. >>>>> >>>>> - create default group package: ha-cluster >>>>> As a placeholder I've set this group package to do >>>>> ha-cluster-full. Those who believe that default install should be >>>>> ha-cluster-minimal, sing out now. >>>>> >>>>> - 6805657 manual for vxvm in clsetup needs to be removed from >>>>> colorado >>>>> Similar to the fix for disabling unavailable data service >>>>> wizards in clsetup, this fix tests to see if we have clustering >>>>> support for vxvm, and if not, disables all vxvm-specific options >>>>> >>>>> thx, --emk