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>

Reply via email to