Deadlock in ADS
---------------

         Key: DIRMINA-195
         URL: http://issues.apache.org/jira/browse/DIRMINA-195
     Project: Directory MINA
        Type: Bug
    Versions: 0.9.2    
    Reporter: Emmanuel Lecharny
    Priority: Blocker


Hi all Mina's gurus,

we have a deadlock situation in ADS when launching tests with more than one 
client thread. Here is the thread dump I get :

"IoThreadPool-11" prio=1 tid=0x08b11278 nid=0x1d12 in Object.wait() 
[0xb06a5000..0xb06a5e30]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e5e7a70> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-10" prio=1 tid=0x08b0f330 nid=0x1d11 in Object.wait() 
[0xb0727000..0xb07271b0]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e5019a8> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-9" prio=1 tid=0x08b0e450 nid=0x1d10 in Object.wait() 
[0xb07a7000..0xb07a8130]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e4b4ea0> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-8" prio=1 tid=0x08a63d18 nid=0x1d0f in Object.wait() 
[0xb0828000..0xb08290b0]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e41b558> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-7" prio=1 tid=0x08a61c98 nid=0x1d0a in Object.wait() 
[0xb08a9000..0xb08aa030]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e2e5c28> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-6" prio=1 tid=0x08a5ebb0 nid=0x1d07 in Object.wait() 
[0xb092a000..0xb092afb0]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e24bf60> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-5" prio=1 tid=0x08b02dc0 nid=0x1d05 in Object.wait() 
[0xb09ab000..0xb09abf30]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e1b2b28> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-4" prio=1 tid=0x08b03bd0 nid=0x1d03 in Object.wait() 
[0xb0a2c000..0xb0a2ceb0]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e1649f0> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-3" prio=1 tid=0x08e33ab8 nid=0x3b75 in Object.wait() 
[0xb0aad000..0xb0aae030]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:474)
        at 
org.apache.mina.util.BlockingQueue.waitForNewItem(BlockingQueue.java:55)
        - locked <0x7de638f0> (a org.apache.mina.util.BlockingQueue)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.fetchBuffer(ThreadPoolFilter.java:394)
        - locked <0x7de638f0> (a org.apache.mina.util.BlockingQueue)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:369)

"IoThreadPool-2" prio=1 tid=0x08b02270 nid=0x1cf1 in Object.wait() 
[0xb0bb0000..0xb0bb01b0]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e116bf8> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"IoThreadPool-1" prio=1 tid=0x08b037a8 nid=0x1d01 in Object.wait() 
[0xb0b2e000..0xb0b2ee30]
        at java.lang.Object.wait(Native Method)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.waitForPromotion(ThreadPoolFilter.java:493)
        - locked <0x7e119190> (a java.lang.Object)
        at 
org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:366)

"SocketIoProcessor-0" prio=1 tid=0x08f21b50 nid=0x3b35 runnable 
[0xb0c30000..0xb0c30eb0]
        at sun.nio.ch.PollArrayWrapper.poll0(Native Method)
        at sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:100)
        at sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x7e0f3ac0> (a sun.nio.ch.Util$1)
        - locked <0x7e0f3ad0> (a java.util.Collections$UnmodifiableSet)
        - locked <0x7e0f3a70> (a sun.nio.ch.PollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at 
org.apache.mina.transport.socket.nio.support.SocketIoProcessor$Worker.run(SocketIoProcessor.java:621)

"DestroyJavaVM" prio=1 tid=0x08a108a0 nid=0x3b13 waiting on condition 
[0x00000000..0xbfe4d680]

"SynchWorkerThread" prio=1 tid=0x08f25d20 nid=0x3b24 in Object.wait() 
[0xb0cb1000..0xb0cb2030]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x7ddfa820> (a java.lang.Object)
        at org.apache.directory.server.Service$SynchWorker.run(Service.java:155)
        - locked <0x7ddfa820> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:595)

"SocketAcceptor-0" prio=1 tid=0x08f1b8e8 nid=0x3b23 runnable 
[0xb0d32000..0xb0d32fb0]
        at sun.nio.ch.PollArrayWrapper.poll0(Native Method)
        at sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:100)
        at sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x7e093b50> (a sun.nio.ch.Util$1)
        - locked <0x7e099140> (a java.util.Collections$UnmodifiableSet)
        - locked <0x7e0963a0> (a sun.nio.ch.PollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
        at 
org.apache.mina.transport.socket.nio.support.SocketAcceptorDelegate$Worker.run(SocketAcceptorDelegate.java:326)

"Low Memory Detector" daemon prio=1 tid=0x08a57370 nid=0x3b1e runnable 
[0x00000000..0x00000000]

"CompilerThread0" daemon prio=1 tid=0x08a55e10 nid=0x3b1d waiting on condition 
[0x00000000..0xb20cb818]

"Signal Dispatcher" daemon prio=1 tid=0x08a54e38 nid=0x3b1c runnable 
[0x00000000..0x00000000]

"Finalizer" daemon prio=1 tid=0x08a4f348 nid=0x3b1a in Object.wait() 
[0xb23cd000..0xb23ce130]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x7ddca718> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x7ddca718> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x08a4d4b8 nid=0x3b19 in Object.wait() 
[0xb244e000..0xb244f0b0]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x7ddca798> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x7ddca798> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=1 tid=0x08a4a968 nid=0x3b18 runnable 

"VM Periodic Task Thread" prio=1 tid=0x08a58810 nid=0x3b1f waiting on condition 



And here is a jstack trace too :

Thread 15221: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be 
imprecise)
 - java.lang.Object.wait() @bci=2, line=474 (Compiled frame)
 - org.apache.mina.filter.ThreadPoolFilter$Worker.fetchBuffer() @bci=23, 
line=394 (Compiled frame)
 - org.apache.mina.filter.ThreadPoolFilter$Worker.run() @bci=11, line=369 
(Compiled frame)


Thread 15157: (state = IN_NATIVE)
 - sun.nio.ch.PollArrayWrapper.poll0(long, int, long) @bci=0 (Compiled frame; 
information may be imprecise)
 - sun.nio.ch.PollArrayWrapper.poll(int, int, long) @bci=13, line=100 (Compiled 
frame)
 - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled 
frame)
 - sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)


Thread 15123: (state = BLOCKED)


Thread 15140: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - org.apache.directory.server.Service$SynchWorker.run() @bci=17, line=155 
(Interpreted frame)
 - java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)


Thread 15139: (state = IN_NATIVE)
 - sun.nio.ch.PollArrayWrapper.poll0(long, int, long) @bci=0 (Compiled frame; 
information may be imprecise)
 - sun.nio.ch.PollArrayWrapper.poll(int, int, long) @bci=13, line=100 (Compiled 
frame)
 - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Compiled 
frame)
 - sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Compiled frame)
 - sun.nio.ch.SelectorImpl.select() @bci=2, line=84 (Interpreted frame)
 - 
org.apache.mina.transport.socket.nio.support.SocketAcceptorDelegate$Worker.run()
 @bci=7, line=326 (Interpreted frame)


Thread 15132: (state = BLOCKED)


Thread 15130: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=116 (Interpreted 
frame)
 - java.lang.ref.ReferenceQueue.remove() @bci=2, line=132 (Interpreted frame)
 - java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted 
frame)


Thread 15129: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
 - java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 
(Interpreted frame)


I don't know if the problem is related to DIRMINA-169. Any clue ?

-- 
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