OK. Thank you. Regards, Narendra
On 7/26/07, Liane Praza <lianep at eng.sun.com> wrote: > > > "Narendra Kumar S.S" writes: > > On 7/26/07, Liane Praza <lianep at eng.sun.com> wrote: > > > > > > "Narendra Kumar S.S" writes: > > > > Now, I have written a code, which calls smf_enable_instance to > enable > > > > filesystem/local service. > > > > Immediately after returning from this call, the next instruction, > tries > > > to > > > > access a file on one of the local filesystems. > > > > So, are there chances that, the filesystem/local is not yet > completely > > > > enabled and because of that, the local filesystem is not yet mounted > and > > > > hence this instruction might fail!? > > > > > > It is completely enabled. However, enabled doesn't mean the service > > > is online. It means that we're trying to make it be online, but its > > > dependencies may not be satisfied, it may have failed, or it may just > > > not be online yet. > > > > > > As I said: > > > > > Currently, an interface which is synchronous to online/disabled is > > > only > > > > > formally available through svcadm [en|dis]able -s. I believe > there's > > > an > > > > > RFE to make the synchronous semantics through libscf, but don't > have > > > the > > > > > bugid to hand. It'd make a great OpenSolaris RFE, though. :) > > > > > > In the meantime, you could wait a little bit to see if smf_get_state() > > > returns SCF_STATE_STRING_ONLINE before continuing. > > > > > > OK. So, if I have to wait a 'little bit', is there any standard or > > predefined value for this wait? > > Nope, sorry -- I don't know (and the system doesn't either) a priori > how long it could take for a service to start, especially filesystem > services that mount an administrator-defined arbitrary number of > filesystems. (And that doesn't take into account if its dependencies > haven't had the chance to start yet.) > > That's why it's a bug there isn't a libscf function to do what svcadm > enable -s does: to implement a better algorithm than an arbitrary wait. > I wish that there was, but we just haven't had the chance yet to do the > work. I was trying to give you a potential quick and dirty solution > that could work for your situation. > > You could look at the code in svcadm.c if you want the real algorithm... > > > http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/svc/svcadm/ > > IIRC, most of the code is in synch.c. > > liane > -- > Liane Praza, Solaris Kernel Development > liane.praza at sun.com - http://blogs.sun.com/lianep > > > -- Warm Regards, Narendra Visit my blogs at: http://ssnarendrakumar.blogspot.com/ ___ ___ __ _ / __/ / __/ / | / / _\ \ _ \ \ / /| |/ / \___/ \___/ /_/ |__/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/smf-discuss/attachments/20070726/288f603d/attachment.html>