On 05/29/09 05:17, Alan Maguire wrote: > Sangeeta Misra wrote: >> On 05/28/09 08:21, Alan Maguire wrote: >>> Sangeeta Misra wrote: >>>> On 05/28/09 05:29, Alan Maguire wrote: >>>>> Sangeeta Misra wrote: >>>>>> >>>>>> >>>>>> In ILB project, the persistent configuration is kept in the SCF >>>>>> framework and a user would use svcadm to enable/disable the ILB >>>>>> service. My question is, in the event that the ILB service, >>>>>> experiences a fatal error, is there a programmatic way to put ILB >>>>>> service in maintainance mode ( to prevent the service from going >>>>>> into a cycle or restart followed by fatal error)? >>>>> If the ILB service daemon can detect such fatal errors >>>>> once it has daemonized, you can use the libscf function >>>>> >>>>> smf_maintain_instance(ILB_FMRI, SMF_IMMEDIATE) >>>>> >>>>> (where ILB_FMRI points at the ILB service instance) >>>>> >>>>> ...to kill the associated running processes and put the >>>>> instance into maintenance. If there are fatal conditions >>>>> detectable before daemonizing, simply exit with >>>>> errorcode 95 (SMF_EXIT_ERR_FATAL). >>>>> >>>>> Hope this helps, >>>>> >>>>> Alan >>>> Thanks. Also after the service automatically goes into maintainance >>>> mode, we would like to have the user save the ILB config ( and >>>> provide that to us, so we can recreate the problem) and then wipe >>>> out the ILB service configuration in scf to start fresh. >>>> Assuming this is possible with SCF, how can the user do this ? Do >>>> they need to save a image of a shipped ILB config ( which is really >>>> enpty config) before they configure ILB , so at a later time they >>>> can revert back to that config? >>>> >>> hmm, one approach that might be worth investigating >>> - assuming all the config is in properties contained >>> in the ILB service instance - would be the use of SMF >>> snapshots (read-only views of the properties >>> associated with an instance). >> >> The ILB SMF manifest does not contain the config properties. Is >> there a way of simply wiping out the ILB service configuration using >> SCF commnand? Since the shipped ILB config is an empty config, I >> would think wiping the config out via SCF ( note by this I mean the >> the config of the ILB service) and restarting the service via svcadm >> should do the trick (??) >> > That would do the trick, with the proviso > that you'd need to refresh the ILB service > instance so the property deletion makes > it into the running snapshot (from which > the ILB daemon will read its config). > > Auto-restarting I'm not sure about - > the more common SMF approach > would be to reserve maintenance > state for cases that required human > intervention. Under that model, > an explicit "ilbadm revert-config" > command or similar could clear > out the properties, refresh the > instance and clear the maintenance > state allowing the service to rerun Alan, Is it possible for ilbd daemon to wipe out the configuration via some scf function , *before* invoking smf_maintain_instance() . Then the user could just manually do svcadm enable <ilb service> to get the system running ILB with and empty config?
> (I'm assuming here that this clearing > out of config would be reserved > for scenarios where the configuration > is not usable). > Correct