[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)
Galder Zamarreño (JIRA)
jira-events at lists.jboss.org
Tue Nov 16 03:40:45 EST 2010
[ https://jira.jboss.org/browse/ISPN-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Galder Zamarreño updated ISPN-771:
----------------------------------
Fix Version/s: 4.2.0.Final
Affects Version/s: 4.2.0.BETA1
4.1.0.Final
4.0.0.Final
Description:
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.
was:
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.
> 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
> Affects Versions: 4.0.0.Final, 4.1.0.Final, 4.2.0.BETA1
> Reporter: Scott Marlow
> Assignee: Paul Ferraro
> Fix For: 4.2.0.CR1, 4.2.0.Final
>
> Attachments: all-clleak-simple.sh, patch.txt
>
>
> 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