[infinispan-issues] [JBoss JIRA] Updated: (ISPN-771) org.infinispan.notifications.AbstractListenerImpl.listenersMap ViewChanged entries keep increasing during start/stop/start/stop cycle (AS application deploy/undeploy)
Scott Marlow (JIRA)
jira-events at lists.jboss.org
Mon Nov 15 11:57:43 EST 2010
[ https://jira.jboss.org/browse/ISPN-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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 at 1d2d2db8
> 0:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 2eedd32f
> 1:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 18b9ae20
> 2:li.target=org.infinispan.transaction.xa.TransactionTable$StaleTransactionCleanup at 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
More information about the infinispan-issues
mailing list