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