http://defect.opensolaris.org/bz/show_bug.cgi?id=14344
Michael Hunter <michael.hunter at sun.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |michael.hunter at sun.com
--- Comment #3 from Michael Hunter <michael.hunter at sun.com> 2010-02-03
17:37:40 UTC ---
(In reply to comment #1)
[...]
> This suggests that deadlock occurs in the event handler thread as follows. An
> event we are handling requires us to enqueue a new event, but since the event
> queue is full (31 events + the current event we're processing), it has nowhere
> to go. The event handling thread is blocked trying to enqueue, and since it is
> responsible for draining the event queue via nwamd_event_fini() calls, we're
> stuck. I can't think of an immediate way round this (we can't free the current
> event until we've finished handling it and sent any externally-relevant data
> via nwamd_event_send()) using the preallocated event approach.
if (event != NULL && in_past(event->event_time)) {
uu_list_remove(event_queue, event);
uu_list_node_fini(event, &event->event_node, event_pool);
} else {
event = nwamd_event_init(NWAM_EVENT_TYPE_QUEUE_QUIET,
NWAM_OBJECT_TYPE_UNKNOWN, 0, NULL);
}
If this is the only one then we can correct this part of it by moving the later
mutex unlock below the node_fini and above the event_init.
--
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.