[ http://issues.apache.org/jira/browse/DIRMINA-202?page=comments#action_12373448 ]
John K Peterson commented on DIRMINA-202: ----------------------------------------- Turns out the version I'm working with is 0.9.2. Sorry for the confusion. I've tried to strip down the class to remove all the MINA-specific stuff, however, when I do that it doesn't hang. So, the basic wakeup before select is not the problem. I'm wondering if maybe it somehow gets back around to 'select' a second time. Now I've got the right source and can throw in some print statements in to find out the order and frequency of events... > Race condition in SocketAcceptorDelegate.unbind > ----------------------------------------------- > > Key: DIRMINA-202 > URL: http://issues.apache.org/jira/browse/DIRMINA-202 > Project: Directory MINA > Type: Bug > Reporter: John K Peterson > > On my system (Linux 2.4.22/JamVM 1.4.2/Classpath 0.90), ApacheDS gets stuck > in SocketAcceptorDelegate.unbind. > SocketAcceptorDelegate.unbind does the following: > 1) creates a cancellation request > 2) starts up a worker thread > 3) puts the cancellation request on the cancelQueue > 4) wakes up the worker thread's selector > 5) waits for the cancellation request to be done > The problem is that 4) assumes that 2) has gotten the worker thread to point > where it has called selector.select(). However, there's no guarantee that > the worker thread has gotten that far, in which case the wakeup occurs before > the select and then the select hangs. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
