[jboss-jira] [JBoss JIRA] (WFLY-6989) Java deadlock with IdleRemover thread

Martin Simka (JIRA) issues at jboss.org
Wed Sep 14 06:38:00 EDT 2016


    [ https://issues.jboss.org/browse/WFLY-6989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293128#comment-13293128 ] 

Martin Simka commented on WFLY-6989:
------------------------------------

this looks like JBJCA-1311 which is resolved in WildFly 10.1.

> Java deadlock with IdleRemover thread
> -------------------------------------
>
>                 Key: WFLY-6989
>                 URL: https://issues.jboss.org/browse/WFLY-6989
>             Project: WildFly
>          Issue Type: Bug
>          Components: JCA
>    Affects Versions: 10.0.0.Final
>         Environment: Java 8 b102 64-bit on Linux
> Using Oracle 12.c with Oracle thin client drivers.
>            Reporter: David Rothenberger
>            Assignee: Stefano Maestri
>
> We have had two Java deadlock issues involving the IdleRemover thread.
> We are using the following datasource definition:
> Data source definition:
> {code:xml}
> <datasource jndi-name="java:/EntomoNonTxDS" pool-name="EntomoNonTxDS" enabled="true" use-java-context="true">
>     <connection-url>jdbc:oracle:thin:@//somehost:1541/somethingelse</connection-url>
>     <driver>ojdbc6.jar</driver>
>     <pool>
>         <max-pool-size>200</max-pool-size>
>         <allow-multiple-users>true</allow-multiple-users>
>     </pool>
>     <timeout>
>         <idle-timeout-minutes>5</idle-timeout-minutes>
>     </timeout>
>     <validation>
>         <validate-on-match>true</validate-on-match>
>         <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
>         <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
>         <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
>     </validation>
> </datasource>
> {code}
> The information from Java relevant to the deadlock:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "WorkflowMgr":
>   waiting for ownable synchronizer 0x00000002d37eb7f0, (a java.util.concurrent.locks.ReentrantLock$FairSync),
>   which is held by "IdleRemover"
> "IdleRemover":
>   waiting to lock monitor 0x00007eff4c0a80e8 (object 0x00000002d280e6f0, a org.jboss.jca.core.connectionmanager.pool.strategy.PoolByCri),
>   which is held by "WorkflowMgr"
> "WorkflowMgr":
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00000002d37eb7f0> (a java.util.concurrent.locks.ReentrantLock$FairSync)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
>         at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:224)
>         at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
>         at org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover.internalRegisterPool(IdleRemover.java:184)
>         at org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover.registerPool(IdleRemover.java:166)
>         at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.initialize(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:184)
>         at org.jboss.jca.core.connectionmanager.pool.mcp.ManagedConnectionPoolFactory.init(ManagedConnectionPoolFactory.java:191)
>         at org.jboss.jca.core.connectionmanager.pool.mcp.ManagedConnectionPoolFactory.create(ManagedConnectionPoolFactory.java:173)
>         at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getManagedConnectionPool(AbstractPool.java:306)
>         - locked <0x00000002d280e6f0> (a org.jboss.jca.core.connectionmanager.pool.strategy.PoolByCri)
>         at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:590)
>         at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:590)
>         at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:429)
>         at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:747)
>         at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:162)
>         at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:73)
> ...
> "IdleRemover":
>         at org.jboss.jca.core.connectionmanager.pool.AbstractPool.emptyManagedConnectionPool(AbstractPool.java:454)
>         - waiting to lock <0x00000002d280e6f0> (a org.jboss.jca.core.connectionmanager.pool.strategy.PoolByCri)
>         at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.removeIdleConnections(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1034)
>         at org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover$IdleRemoverRunner.run(IdleRemover.java:275)
>         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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list