[ 
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

Reply via email to