You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Carlos Quiroz (JIRA)" <ji...@apache.org> on 2008/08/08 17:06:52 UTC

[jira] Commented: (AMQ-1059) ActiveMQ Task/Transport Deadlock when using Stomp

    [ https://issues.apache.org/activemq/browse/AMQ-1059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44869#action_44869 ] 

Carlos Quiroz commented on AMQ-1059:
------------------------------------

Hi

I have found almost exactly the same  deadlock it happens when a client sends messages quickly and gets their responses almost immediately. I'm using ActiveMQ 5.1.0
I get this dump:

INFO   | jvm 1    | 2008/08/08 17:38:45 | Found one Java-level deadlock:
INFO   | jvm 1    | 2008/08/08 17:38:45 | =============================
INFO   | jvm 1    | 2008/08/08 17:38:45 | "ActiveMQ Connection Dispatcher: /127.0.0.1:43864":
INFO   | jvm 1    | 2008/08/08 17:38:45 |   waiting to lock monitor 0x0a66d3e4 (object 0xb2635ba8, a java.lang.Object),
INFO   | jvm 1    | 2008/08/08 17:38:45 |   which is held by "ActiveMQ Transport: tcp:///127.0.0.1:43864"
INFO   | jvm 1    | 2008/08/08 17:38:45 | "ActiveMQ Transport: tcp:///127.0.0.1:43864":
INFO   | jvm 1    | 2008/08/08 17:38:45 |   waiting to lock monitor 0x0a480f84 (object 0xb2635bc8, a java.lang.Object),
INFO   | jvm 1    | 2008/08/08 17:38:45 |   which is held by "ActiveMQ Connection Dispatcher: /127.0.0.1:43864"
INFO   | jvm 1    | 2008/08/08 17:38:45 |
INFO   | jvm 1    | 2008/08/08 17:38:45 | Java stack information for the threads listed above:
INFO   | jvm 1    | 2008/08/08 17:38:45 | ===================================================
INFO   | jvm 1    | 2008/08/08 17:38:45 | "ActiveMQ Connection Dispatcher: /127.0.0.1:43864":
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:80)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       - waiting to lock <0xb2635ba8> (a java.lang.Object)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.StompSubscription.onMessageDispatch(StompSubscription.java:71)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.ProtocolConverter.onActiveMQCommad(ProtocolConverter.java:552)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.StompTransportFilter.oneway(StompTransportFilter.java:59)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       - locked <0xb2635bc8> (a java.lang.Object)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1228)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:816)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:853)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
INFO   | jvm 1    | 2008/08/08 17:38:45 | "ActiveMQ Transport: tcp:///127.0.0.1:43864":
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       - waiting to lock <0xb2635bc8> (a java.lang.Object)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1228)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:816)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:775)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:183)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:80)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       - locked <0xb2635ba8> (a java.lang.Object)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:134)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.ProtocolConverter.onStompSend(ProtocolConverter.java:245)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:172)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:70)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
INFO   | jvm 1    | 2008/08/08 17:38:45 |       at java.lang.Thread.run(Thread.java:619)
INFO   | jvm 1    | 2008/08/08 17:38:45 |
INFO   | jvm 1    | 2008/08/08 17:38:45 | Found 1 deadlock.
INFO   | jvm 1    | 2008/08/08 17:38:45 |
INFO   | jvm 1    | 2008/08/08 17:38:45 | Heap
INFO   | jvm 1    | 2008/08/08 17:38:45 |  PSYoungGen      total 80448K, used 22996K [0xadca0000, 0xb42c0000, 0xb4e60000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |   eden space 74880K, 24% used [0xadca0000,0xaee95950,0xb25c0000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |   from space 5568K, 82% used [0xb25c0000,0xb2a3f7b0,0xb2b30000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |   to   space 6144K, 0% used [0xb3cc0000,0xb3cc0000,0xb42c0000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |  PSOldGen        total 18368K, used 9935K [0x74e60000, 0x76050000, 0xadca0000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |   object space 18368K, 54% used [0x74e60000,0x75813fe0,0x76050000)
INFO   | jvm 1    | 2008/08/08 17:38:45 |  PSPermGen       total 54656K, used 33288K [0x70e60000, 0x743c0000, 0x74e60000)


> ActiveMQ Task/Transport Deadlock when using Stomp
> -------------------------------------------------
>
>                 Key: AMQ-1059
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1059
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 4.0.2
>         Environment: Linux Redhat EL3, Java 1.4.2
>            Reporter: William Leibzon
>            Assignee: Rob Davies
>             Fix For: 5.1.0
>
>
> This happened after about a day running monitoring script that uses Perl stomp client to connect to JMS.
> Found one Java-level deadlock:
> =============================
> "ActiveMQ Task":
>   waiting to lock monitor 0x0807ae74 (object 0x7ee3a898, a java.lang.Object),
>   which is held by "ActiveMQ Transport: tcp:///10.1.111.14:60270"
> "ActiveMQ Transport: tcp:///10.1.111.14:60270":
>   waiting to lock monitor 0x0807b474 (object 0x7ee3caa8, a java.lang.Object),
>   which is held by "ActiveMQ Task"
> Java stack information for the threads listed above:
> ===================================================
> "ActiveMQ Task":
>         at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:70)
>         - waiting to lock <0x7ee3a898> (a java.lang.Object)
>         at org.apache.activemq.transport.stomp.StompSubscription.onMessageDispatch(StompSubscription.java:71)
>         at org.apache.activemq.transport.stomp.ProtocolConverter.onActiveMQCommad(ProtocolConverter.java:476)
>         at org.apache.activemq.transport.stomp.StompTransportFilter.oneway(StompTransportFilter.java:52)
>         at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:142)
>         at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
>         - locked <0x7ee3caa8> (a java.lang.Object)
>         at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
>         at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:215)
>         at org.apache.activemq.broker.AbstractConnection.processDispatch(AbstractConnection.java:722)
>         at org.apache.activemq.broker.AbstractConnection.iterate(AbstractConnection.java:738)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)
>         at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
>         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at java.lang.Thread.run(Unknown Source)
> "ActiveMQ Transport: tcp:///10.1.111.14:60270":
>         at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
>         - waiting to lock <0x7ee3caa8> (a java.lang.Object)
>         at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
>         at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:215)
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:63)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:123)
>         at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:70)
>         - locked <0x7ee3a898> (a java.lang.Object)
>         at org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:112)
>         at org.apache.activemq.transport.stomp.ProtocolConverter.onStompSend(ProtocolConverter.java:197)
>         at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:132)
>         at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:60)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:88)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
>         at java.lang.Thread.run(Unknown Source)
> Found 12 deadlocks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.