You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Laurent Marchal (Commented) (JIRA)" <ji...@apache.org> on 2011/11/03 15:39:32 UTC

[jira] [Commented] (CAY-1513) Deadlock in PoolManager

    [ https://issues.apache.org/jira/browse/CAY-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143205#comment-13143205 ] 

Laurent Marchal commented on CAY-1513:
--------------------------------------

Hi,

Do you think this fix could also be backported to the production version 3.0.3 ?

Thanks.
                
> Deadlock in PoolManager
> -----------------------
>
>                 Key: CAY-1513
>                 URL: https://issues.apache.org/jira/browse/CAY-1513
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Core Library
>    Affects Versions: 3.0, 3.0.1
>         Environment: Linux
>            Reporter: Laurent Marchal
>            Priority: Critical
>             Fix For: 3.1M4
>
>
> I'm using cayenne 3.0 ans I'm experiencing a deadlock when I exit my application. I call PoolManager.dispose() to disconnect all connections, but it seems if at the same time a pooled connection is returned to the pool then it deadlocks.
> Here is the deadlock as detected by the java console.
> Name: Worker-2
> State: BLOCKED on com.sma.core.net.OpconPoolManager@197871d owned by: main
> Total blocked: 327  Total waited: 475
> Stack trace:
> org.apache.cayenne.conn.PoolManager.connectionClosed(PoolManager.java:438)
> org.apache.cayenne.conn.PooledConnectionImpl.connectionClosedNotification(PooledConnectionImpl.java:181)
>   - locked java.util.Collections$SynchronizedRandomAccessList@12a12fc
> org.apache.cayenne.conn.PooledConnectionImpl.returnConnectionToThePool(PooledConnectionImpl.java:146)
> org.apache.cayenne.conn.ConnectionWrapper.close(ConnectionWrapper.java:127)
> org.apache.cayenne.access.ExternalTransaction.close(ExternalTransaction.java:168)
> org.apache.cayenne.access.ExternalTransaction.commit(ExternalTransaction.java:105)
> _______________________________________________________________________________________________________
> Name: main
> State: BLOCKED on java.util.Collections$SynchronizedRandomAccessList@12a12fc owned by: Worker-2
> Total blocked: 30  Total waited: 122
> Stack trace:
> org.apache.cayenne.conn.PooledConnectionImpl.removeConnectionEventListener(PooledConnectionImpl.java:97)
> org.apache.cayenne.conn.PoolManager.dispose(OpconPoolManager.java:169)
>   - locked org.apache.cayenne.conn.PoolManager@197871d
> com.sma.core.session.Session.disconnect(Session.java:189)
>   - locked java.lang.Object@167a300
> com.sma.core.session.Session.logout(Session.java:269)
>   - locked java.lang.Object@167a300

--
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