[
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