JBoss stalls on the IdleRemover when shutting down a datasource
Issue
- JBoss stalls as it shuts down a datasource. The last message seen during this shutdown is:
DEBUG [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] (JBoss Shutdown Hook) Stopping jboss.jca:service=ManagedConnectionPool,name=DefaultDS
- Thread dumps show the shutdown thread hanging on the IdleRemover like so:
"JBoss Shutdown Hook" daemon prio=10 tid=0x0000000007f60800 nid=0x2679 waiting for monitor entry [0x000000004bb19000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.jboss.resource.connectionmanager.IdleRemover.internalUnregisterPool(IdleRemover.java:116)
- waiting to lock <0x00002aab09394460> (a java.util.concurrent.CopyOnWriteArrayList)
at org.jboss.resource.connectionmanager.IdleRemover.unregisterPool(IdleRemover.java:60)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.shutdown(InternalManagedConnectionPool.java:520)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.shutdown(JBossManagedConnectionPool.java:947)
- locked <0x00002aab166acd60> (a java.util.concurrent.ConcurrentHashMap)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool.stopService(JBossManagedConnectionPool.java:523)
- But the IdleRemover is stalled waiting for a response from the database:
"IdleRemover" daemon prio=10 tid=0x00002aabb6e01000 nid=0x7f9e runnable [0x0000000043495000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at oracle.net.ns.Packet.receive(Packet.java:283)
at oracle.net.ns.DataPacket.receive(DataPacket.java:103)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C7Ocommoncall.doOLOGOFF(T4C7Ocommoncall.java:61)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:498)
- locked <0x00002aab229e9be8> (a oracle.jdbc.driver.T4CConnection)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:3931)
- locked <0x00002aab229e9be8> (a oracle.jdbc.driver.T4CConnection)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.destroy(BaseWrapperManagedConnection.java:313)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.doDestroy(InternalManagedConnectionPool.java:670)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.removeIdleConnections(InternalManagedConnectionPool.java:489)
at org.jboss.resource.connectionmanager.IdleRemover$IdleRemoverRunnable.run(IdleRemover.java:171)
- locked <0x00002aab09394460> (a java.util.concurrent.CopyOnWriteArrayList)
at java.lang.Thread.run(Thread.java:636)
Environment
- JBoss Enterprise Application Platform (EAP)
- 4.3
- 5
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.