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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
