Deadlock in JBoss Messaging during JBoss5 shutdown
adrian.brock Oct 4, 2007 12:06 PMI got these messages while shutting down JBossAS 5
NOTE: At least one of the MDBs had failed to deploy properly because of a missing
Queue in JNDI (broken test).
17:55:09,482 ERROR [ClosedInterceptor] ClosedInterceptor.ClientConnectionDelegate[21-xld9gd7f-1-ki04gd7f-omou9m-d24o4c5]: method setExceptionListener() did not go through, the interceptor is CLOSED 17:55:09,482 ERROR [ClosedInterceptor] ClosedInterceptor.ClientConnectionDelegate[21-xld9gd7f-1-ki04gd7f-omou9m-d24o4c5]: method stop() did not go through, the interceptor is CLOSED 17:55:09,483 INFO [JMSContainerInvoker] Waiting for reconnect internal 10000ms for SubclassMDB ... 17:55:57,514 WARN [SimpleConnectionManager] A problem has been detected with the connection to remote client 5c4o42d-bfpdd6-f7dg9abp-1-f7dg9jsl-35, jmsClientID=a-f1f9gd7f-1-pba9gd7f-6ddpfb-d24o4c5. It is possible the client has exited without closing its connection(s) or there is a network problem. All connection resources corresponding to that client process will now be removed.
It's deadlocked here:
"JBoss Shutdown Hook" daemon prio=1 tid=0x0a11a9e8 nid=0x31c6 in Object.wait() [0x73677000..0x73679f30] at java.lang.Object.wait(Native Method) - waiting on <0x992c1550> (a org.jboss.jms.client.container.ClosedInterceptor) at java.lang.Object.wait(Object.java:474) at org.jboss.jms.client.container.ClosedInterceptor.checkCloseAlreadyDone(ClosedInterceptor.java:245) - locked <0x992c1550> (a org.jboss.jms.client.container.ClosedInterceptor) at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:142) at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:106) at org.jboss.jms.client.delegate.ClientConsumerDelegate$close_N4742752445160157748.invokeNext(ClientConsumerDelegate$close_N4742752445160157748.java) at org.jboss.jms.client.delegate.ClientConsumerDelegate.close(ClientConsumerDelegate.java) at org.jboss.jms.client.container.ClosedInterceptor.maintainRelatives(ClosedInterceptor.java:306) at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:165) at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:106) at org.jboss.jms.client.delegate.ClientSessionDelegate$closing_N1847373599029068216.invokeNext(ClientSessionDelegate$closing_N1847373599029068216.java) at org.jboss.jms.client.delegate.ClientSessionDelegate.closing(ClientSessionDelegate.java) at org.jboss.jms.client.JBossConnectionConsumer.doClose(JBossConnectionConsumer.java:337) - locked <0x992cb4f8> (a org.jboss.jms.client.JBossConnectionConsumer) at org.jboss.jms.client.JBossConnectionConsumer.close(JBossConnectionConsumer.java:163) at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStopDelivery(JMSContainerInvoker.java:917) ... at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:482) at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:778)
The only other JMS thread left is
"Connection Consumer for dest JBossQueue[A] id=1" daemon prio=1 tid=0x73dff598 nid=0x31bd in Object.wait() [0x75b5d000..0x75b5df30] at java.lang.Object.wait(Native Method) - waiting on <0x992b5fd8> (a java.lang.Object) at java.lang.Object.wait(Object.java:474) at org.jboss.jms.client.container.ClientConsumer.getMessage(ClientConsumer.java:829) at org.jboss.jms.client.container.ClientConsumer.receive(ClientConsumer.java:423) - locked <0x992b5fd8> (a java.lang.Object) at org.jboss.jms.client.container.ConsumerAspect.handleReceive(ConsumerAspect.java:162) at org.jboss.aop.advice.org.jboss.jms.client.container.ConsumerAspect_z_handleReceive_32316862.invoke(ConsumerAspect_z_handleReceive_32316862.java) at org.jboss.jms.client.delegate.ClientConsumerDelegate$receive_N8299950230150603585.invokeNext(ClientConsumerDelegate$receive_N8299950230150603585.java) at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170) at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:106) at org.jboss.jms.client.delegate.ClientConsumerDelegate$receive_N8299950230150603585.invokeNext(ClientConsumerDelegate$receive_N8299950230150603585.java) at org.jboss.jms.client.delegate.ClientConsumerDelegate.receive(ClientConsumerDelegate.java) at org.jboss.jms.client.JBossConnectionConsumer.run(JBossConnectionConsumer.java:248) at java.lang.Thread.run(Thread.java:595)