]
Flavia Rainone resolved JBJCA-1352.
-----------------------------------
Resolution: Done
IBM MQ deadlock on shutdown
---------------------------
Key: JBJCA-1352
URL:
https://issues.jboss.org/browse/JBJCA-1352
Project: IronJacamar
Issue Type: Bug
Components: AS
Affects Versions: WildFly/IronJacamar 1.4.2.Final
Environment: JBoss EAP 7.0.4
Reporter: Doug Grove
Assignee: Flavia Rainone
Sporadically, on shut down, IBM MQ and JBoss will deadlock. This does not occur on EAP
6.
The Deadlocking threads are
[1]
~~~
ServerService Thread Pool -- 63" #183 prio=5 os_prio=0 tid=0x00000000021ef800
nid=0x50e2 waiting for monitor entry [0x00007fef8451a000]
java.lang.Thread.State: BLOCKED (on object monitor)
at
com.ibm.mq.connector.outbound.ConnectionEventHandler.removeListener(ConnectionEventHandler.java:93)
- waiting to lock <0x000000009be01318> (a
com.ibm.mq.connector.outbound.ConnectionEventHandler)
at
com.ibm.mq.connector.outbound.ManagedConnectionImpl.removeConnectionEventListener(ManagedConnectionImpl.java:434)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.doDestroy(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1376)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.flush(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:882)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.shutdown(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1065)
at
org.jboss.jca.core.connectionmanager.pool.AbstractPool.shutdown(AbstractPool.java:930)
- locked < 0x000000008d09b340> (a
org.jboss.jca.core.connectionmanager.pool.strategy.OnePool)
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.shutdown(AbstractConnectionManager.java:285)
- locked < 0x000000008d09b2e0> (a
org.jboss.jca.core.connectionmanager.notx.NoTxConnectionManagerImpl)
at
org.jboss.as.connector.services.resourceadapters.deployment.AbstractResourceAdapterDeploymentService.unregisterAll(AbstractResourceAdapterDeploymentService.java:192)
at
org.jboss.as.connector.services.resourceadapters.deployment.AbstractResourceAdapterDeploymentService$3.run(AbstractResourceAdapterDeploymentService.java:346)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
~~~
[2]
~~~
"DefaultMessageListenerContainer-2" #162 prio=5 os_prio=0
tid=0x0000000001d7a800 nid=0x46bf waiting for monitor entry [0x00007fef70a7d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.shutdown(AbstractConnectionManager.java:281)
- waiting to lock <0x000000008d09b2e0> (a
org.jboss.jca.core.connectionmanager.notx.NoTxConnectionManagerImpl)
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.returnManagedConnection(AbstractConnectionManager.java:724)
at
org.jboss.jca.core.connectionmanager.listener.NoTxConnectionListener.connectionClosed(NoTxConnectionListener.java:93)
at
com.ibm.mq.connector.outbound.ConnectionEventHandler.fireEvent(ConnectionEventHandler.java:135)
- locked < 0x000000009be01318> (a
com.ibm.mq.connector.outbound.ConnectionEventHandler)
at
com.ibm.mq.connector.outbound.ManagedConnectionImpl.fireConnectionClosed(ManagedConnectionImpl.java:784)
at
com.ibm.mq.connector.outbound.ConnectionWrapper.close(ConnectionWrapper.java:337)
at
org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(ConnectionFactoryUtils.java:80)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:358)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1166)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1158)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055)
at java.lang.Thread.run(Thread.java:745)