You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Alex Parvulescu (Updated) (JIRA)" <ji...@apache.org> on 2012/03/12 10:50:39 UTC

[jira] [Updated] (JCR-3158) Deadlock in DBCP when accessing node

     [ https://issues.apache.org/jira/browse/JCR-3158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Parvulescu updated JCR-3158:
---------------------------------

    Fix Version/s:     (was: 2.5)
                   2.6
                   2.4.1
    
> Deadlock in DBCP when accessing node
> ------------------------------------
>
>                 Key: JCR-3158
>                 URL: https://issues.apache.org/jira/browse/JCR-3158
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 2.2.10, 2.3.3, 2.4
>         Environment: Java 6
> Jackrabbit 2.2.10
> Derby
>            Reporter: Tobias Mattsson
>            Priority: Critical
>             Fix For: 2.4.1, 2.6
>
>
> I found a deadlock situation using JR 2.2.10, the problem is with DBCP 1.2.2 and is fixed in DBCP 1.3, JR trunk also uses DBCP 1.2.2 and should also be updated
> The ticket in dbcp is #DBCP-270, related tickets are #DBCP-65 #DBCP-281 #DBCP-271
> Stack trace of where my call is stalled:
> {code}
> main@1, prio=5, in group 'main', status: 'MONITOR'
> 	 blocks Timer-1@2545
> 	 waiting for Timer-1@2545 to release lock on {1}
> 	  at org.apache.commons.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1137)
> 	  at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:1076)
> 	  at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:87)
> 	  at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181)
> 	  at org.apache.jackrabbit.core.util.db.DbUtility.close(DbUtility.java:75)
> 	  at org.apache.jackrabbit.core.util.db.ResultSetWrapper.invoke(ResultSetWrapper.java:63)
> 	  at $Proxy12.close(Unknown Source:-1)
> 	  at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1042)
> 	  at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:669)
> 	  at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.load(AbstractBundlePersistenceManager.java:415)
> 	  at org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState(SharedItemStateManager.java:1830)
> 	  at org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtualItemState(SharedItemStateManager.java:1750)
> 	  at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:265)
> 	  at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:109)
> 	  at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:174)
> 	  at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260)
> 	  at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:161)
> 	  at org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:382)
> 	  at org.apache.jackrabbit.core.ItemManager.getNode(ItemManager.java:669)
> 	  at org.apache.jackrabbit.core.ItemManager.getNode(ItemManager.java:647)
> 	  at org.apache.jackrabbit.core.LazyItemIterator.prefetchNext(LazyItemIterator.java:120)
> 	  at org.apache.jackrabbit.core.LazyItemIterator.next(LazyItemIterator.java:257)
> 	  at info.magnolia.jcr.iterator.DelegatingNodeIterator.next(DelegatingNodeIterator.java:79)
> {code}
> This is the offending thread:
> {code}
> Timer-1@2545 daemon, prio=5, in group 'main', status: 'MONITOR'
> 	 blocks main@1
> 	 waiting for main@1 to release lock on {1}
> 	  at org.apache.commons.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:176)
> 	  at org.apache.commons.dbcp.AbandonedTrace.init(AbandonedTrace.java:92)
> 	  at org.apache.commons.dbcp.AbandonedTrace.<init>(AbandonedTrace.java:82)
> 	  at org.apache.commons.dbcp.DelegatingStatement.<init>(DelegatingStatement.java:61)
> 	  at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:224)
> 	  at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:331)
> 	  at org.apache.commons.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:312)
> 	  at org.apache.commons.pool.impl.GenericObjectPool.evict(GenericObjectPool.java:1217)
> 	  at org.apache.commons.pool.impl.GenericObjectPool$Evictor.run(GenericObjectPool.java:1341)
> 	  at java.util.TimerThread.mainLoop(Timer.java:512)
> 	  at java.util.TimerThread.run(Timer.java:462)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira