Andrew.Rutz at Sun.COM wrote:
> hi,
>  I modified syseventd's 'start' method to have a "sleep 30" (so that
> I could investigate a race condition).
>
>  I then see this in syseventd's log:
>
> [ Jun 15 14:30:36 Executing start method 
> ("/lib/svc/method/svc-syseventd start") ]
> [ Jun 15 14:30:37 Method "start" exited with status 0 ]
> [ Jun 15 14:37:55 Method "start" exited with status 0 ]
>
> syseventd fork()s and leaves a daemon running.  are the parent and
> child processes BOTH saying they completed the 'start' method ?  eg,
> is there a libscf func being used at runtime to declare that 'start'
> is complete?  (eg, syseventd's binary links libscf:
>
Interesting. On a system running b60, the log reports the completion of 
only one start method.

[ Jun 18 14:48:13 Executing start method ("/lib/svc/method/svc-syseventd 
start") ]
[ Jun 18 14:48:13 Method "start" exited with status 0 ]

I wonder how your change can result in an additional exit code. By the 
way, this message is printed out in method_run(), 
usr/src/cmd/svc/startd/method.c

> # ldd /usr/lib/sysevent/syseventd | grep libscf
>         libscf.so.1 =>   /lib/libscf.so.1
>
> ...but i looked thru the code some... i don't see where a 
> state-transition is being communicated.
>
> what's going on ?
State transition is communicated in a different path, restarter to the 
graph engine. See restarter_instance_update_states() in restarter.c

-tony

Reply via email to