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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content