JBoss stalls on the IdleRemover when shutting down a datasource

Solution Verified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.