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.

Reply via email to