http://defect.opensolaris.org/bz/show_bug.cgi?id=10090



--- Comment #4 from amaguire <alan.maguire at sun.com> 2009-08-14 18:01:15 UTC 
---
thanks for the additional detail John! We can glean a number of useful things
from the corefile, including the fact that the coredump happened when nwamd was
shutting down:

> shutting_down/x
nwamd`shutting_down:
nwamd`shutting_down:            1       
>

We know that the ENM handle (and associated nvlist) got freed in the middle of
our condition checks. Examining the other threads' stacks doesn't give us much,
but given that we free things in very few places, here's what I suspect is
going on:

- a shutdown request occurs, originating from a SIGTERM
- we call graceful_shutdown(), which shuts down the event sources, and finis
the event lists. The fini event triggers a state change event to uninitialized,
which results in enqueuing of a state change event, the handler for which frees
the enm handle. Finally we enqueue a shutdown event, which, when caught, causes
us to destroy the object lists and event queues and exit.
- some time after this and prior to the exit, we get a condition check event,
and we try to access the enm properties for the condition check from the enm
handle (which has been freed).

We probably need to be more formal about the types of processing we
allow/prohibit during shutdown. If the global "shutting_down" is true, we
should be more selective about events we handle. Don't handle condition checks,
ncu checks, etc.

-- 
Configure bugmail: http://defect.opensolaris.org/bz/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Reply via email to