[ 
https://jira.nuxeo.com/browse/NXP-6371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Florent Guillaume updated NXP-6371:
-----------------------------------

    Attachment: nuxeo-core-storage-sql-ra-5.4.0.1-withlogs2.jar

Patch logging connection match/cleanup, which should correspond to pool 
behavior, with stack traces.

--- 
a/nuxeo-core-storage-sql/nuxeo-core-storage-sql-ra/src/main/java/org/nuxeo/ecm/core/storage/sql/ra/ManagedConnectionFactoryImpl.java
+++ 
b/nuxeo-core-storage-sql/nuxeo-core-storage-sql-ra/src/main/java/org/nuxeo/ecm/core/storage/sql/ra/ManagedConnectionFactoryImpl.java
@@ -213,6 +213,8 @@
             if (!this.equals(managedConnection.getManagedConnectionFactory())) 
{
                 continue;
             }
+            log.debug("matched: " + managedConnection, new Exception(
+                    "debug stack trace"));
             return managedConnection;
         }
         return null;
--- 
a/nuxeo-core-storage-sql/nuxeo-core-storage-sql-ra/src/main/java/org/nuxeo/ecm/core/storage/sql/ra/ManagedConnectionImpl.java
+++ 
b/nuxeo-core-storage-sql/nuxeo-core-storage-sql-ra/src/main/java/org/nuxeo/ecm/core/storage/sql/ra/ManagedConnectionImpl.java
@@ -96,6 +96,7 @@
             ManagedConnectionFactoryImpl managedConnectionFactory,
             ConnectionRequestInfoImpl connectionRequestInfo)
             throws ResourceException {
+        log.debug("construct: " + this);
         out = managedConnectionFactory.getLogWriter();
         this.managedConnectionFactory = managedConnectionFactory;
         this.connectionSpec = connectionRequestInfo.connectionSpec;
@@ -136,7 +137,7 @@
      */
     @Override
     public void cleanup() {
-        log.debug("cleanup: " + this);
+        log.debug("cleanup: " + this, new Exception("debug stack trace"));
         synchronized (connections) {
             // TODO session.cancel
             connections.clear();

Logs should be changed to read:
  <category name="org.nuxeo.ecm.core.storage.sql.ra"> 
    <priority value="DEBUG" /> 
  </category> 


> Repository connections leak
> ---------------------------
>
>                 Key: NXP-6371
>                 URL: https://jira.nuxeo.com/browse/NXP-6371
>             Project: Nuxeo Enterprise Platform
>          Issue Type: Bug
>    Affects Versions: 5.4.0.1
>            Reporter: Mathieu Guillaume
>            Assignee: Florent Guillaume
>         Attachments: nuxeo-core-storage-sql-ra-5.4.0.1-withlogs.jar, 
> nuxeo-core-storage-sql-ra-5.4.0.1-withlogs2.jar
>
>
> I'm seing this on two different instances:
> - a DM 5.4.01 + DAM 1.2 on shared repository (no leak on the DAM instance)
> - a DM 5.4.0.1 with some studio plugins added
> In the repository statistics, the number of open connections to the 
> repository slowly creeps up until the application becomes unavailable.
> The corresponding stack trace is the folowing:
> Error while openning core session on repo default
> org.nuxeo.ecm.core.api.ClientException: Failed to load repository default
>         at 
> org.nuxeo.ecm.core.api.local.LocalSession.createSession(LocalSession.java:102)
>         at 
> org.nuxeo.ecm.core.api.local.LocalSession.getSession(LocalSession.java:162)
>         at 
> org.nuxeo.ecm.core.api.AbstractSession.connect(AbstractSession.java:202)
>         at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at 
> org.nuxeo.ecm.core.api.TransactionalCoreSessionWrapper.invoke(TransactionalCoreSessionWrapper.java:98)
>         at $Proxy25.connect(Unknown Source)
>         at 
> org.nuxeo.ecm.core.api.repository.Repository.open(Repository.java:160)
>         at 
> org.nuxeo.ecm.core.api.repository.Repository.open(Repository.java:118)
>         at 
> org.nuxeo.ecm.core.event.impl.ReconnectedEventBundleImpl.getReconnectedCoreSession(ReconnectedEventBundleImpl.java:96)
>         at 
> org.nuxeo.ecm.core.event.impl.ReconnectedEventBundleImpl.getReconnectedEvents(ReconnectedEventBundleImpl.java:119)
>         at 
> org.nuxeo.ecm.core.event.impl.ReconnectedEventBundleImpl.iterator(ReconnectedEventBundleImpl.java:210)
>         at 
> org.nuxeo.ecm.core.storage.sql.coremodel.BinaryTextListener.handleEvent(BinaryTextListener.java:85)
>         at 
> org.nuxeo.ecm.core.event.impl.AsyncEventExecutor$Job.run(AsyncEventExecutor.java:153)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
> org.nuxeo.ecm.core.api.DocumentException. message: 
> org.nuxeo.ecm.core.storage.StorageException: 
> javax.resource.ResourceException: No ManagedConnections available within 
> configured blocking timeout ( 100 [ms] ) for pool 
> org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor@149f72b
>         at 
> org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getSession(ConnectionFactoryImpl.java:241)
>         at 
> org.nuxeo.ecm.core.api.local.LocalSession.createSession(LocalSession.java:100)
>         ... 17 more
> Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
> org.nuxeo.ecm.core.storage.StorageException. message: 
> javax.resource.ResourceException: No ManagedConnections available within 
> configured blocking timeout ( 100 [ms] ) for pool 
> org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor@149f72b
>         at 
> org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:169)
>         at 
> org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getSession(ConnectionFactoryImpl.java:239)
>         ... 18 more
> Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
> javax.resource.ResourceException. message: No ManagedConnections available 
> within configured blocking timeout ( 100 [ms] ) for pool 
> org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor@149f72b
>         at 
> org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:86)
>         at 
> org.apache.geronimo.connector.outbound.MultiPoolConnectionInterceptor.getConnection(MultiPoolConnectionInterceptor.java:81)
>         at 
> org.apache.geronimo.connector.outbound.ThreadLocalCachingConnectionInterceptor.getConnection(ThreadLocalCachingConnectionInterceptor.java:70)
>         at 
> org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:46)
>         at 
> org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:95)
>         at 
> org.apache.geronimo.connector.outbound.SubjectInterceptor.getConnection(SubjectInterceptor.java:58)
>         at 
> org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43)
>         at 
> org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39)
>         at 
> org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66)
>         at 
> org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:87)
>         at 
> org.nuxeo.runtime.jtajca.NuxeoContainer$ConnectionManagerWrapper.allocateConnection(NuxeoContainer.java:191)
>         at 
> org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:164)
>         ... 19 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.nuxeo.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets

Reply via email to