[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)

Paul Ferraro (JIRA) jira-events at lists.jboss.org
Mon Nov 15 15:40:43 EST 2010


     [ https://jira.jboss.org/browse/ISPN-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Ferraro updated ISPN-771:
------------------------------

    Attachment: patch.txt


When an app is undeployed, the backing cache is stopped, but its cache manager is not (the cache manager is shared across all apps).  Consequently, TransactionTable is not removing it's ViewChanged listener (that was added in start()) on stop().  The attached patch to TransactionTable makes start() and stop() symmetrical.

> 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: Scott Marlow
>             Fix For: 4.2.0.CR1
>
>         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