[
https://jira.jboss.org/browse/ISPN-771?page=com.atlassian.jira.plugin.sys...
]
Scott Marlow updated ISPN-771:
------------------------------
Attachment: all-clleak-simple.sh
the all-clleak-simple.sh is attached and can be run from the AS development tree root
after starting an AS instance (ALL profile). The attached script only loops twice but can
easily be changed to loop multiple times.
I saw the OOM after running the script for a few hours on Saturday.
org.infinispan.notifications.AbstractListenerImpl.listenersMap
ViewChanged entries keep increasing during start/stop/start/stop cycle (AS application
deploy/undeploy)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: ISPN-771
URL:
https://jira.jboss.org/browse/ISPN-771
Project: Infinispan
Issue Type: Bug
Reporter: Scott Marlow
Assignee: Manik Surtani
Fix For: 4.2.0.CR1
Attachments: all-clleak-simple.sh
org.infinispan.notifications.AbstractListenerImpl.listenersMap has a
org.infinispan.notifications.cachemanagerlistener.annotation.ViewChanged that is
always increasing number of entries (per deploy/undeploy with AS)
[0]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[1]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[2]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[3]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[4]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
[N]org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.target =
org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup
keeps increasing until we run out of memory
Looks like we miss removing these because:
org.infinispan.notifications.AbstractListenerImpl.removeListenerInvocation
private void removeListenerInvocation(Class<? extends Annotation> annotation,
Object listener) {
if (listener == null) return;
List<ListenerInvocation> l = getListenerCollectionForAnnotation(annotation);
Set<Object> markedForRemoval = new HashSet<Object>();
for (ListenerInvocation li : l) {
if (listener.equals(li.target)) markedForRemoval.add(li); // NEVER EQUALS
}
l.removeAll(markedForRemoval);
}
listener =
org.jboss.web.tomcat.service.session.distributedcache.ispn.DefaultLockManagerSource@1d2d2db8
0:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup@2eedd32f
1:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup@18b9ae20
2:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup@226d7ba7
... same li.target class for all entries, so they don't get removed
class org.jboss.web.tomcat.service.session.distributedcache.ispn.DefaultLockManagerSource
implements LockManagerSource
class org.infinispan.transaction.xa.TransactionTable.StaleTransactionCleanup is a pojo
with onViewChange method.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira