[ http://issues.apache.org/jira/browse/DIRMINA-202?page=comments#action_12373356 ]
John K Peterson commented on DIRMINA-202: ----------------------------------------- I don't see any 'select(1000)' in SocketAcceptorDelegate.Worker at: http://svn.apache.org/viewcvs.cgi/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java?rev=389042&view=markup ...I only see: public void run() { for( ;; ) { try { int nKeys = selector.select(); registerNew(); cancelKeys(); [...] > 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
