[jbosscache-issues] [JBoss JIRA] Commented: (JBCACHE-1582) ExpirationAlgorithm doesn't evict nodes that have been created in a long Tx

Sourabh Pareek (JIRA) jira-events at lists.jboss.org
Thu Apr 28 08:58:18 EDT 2011


    [ https://issues.jboss.org/browse/JBCACHE-1582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598750#comment-12598750 ] 

Sourabh Pareek commented on JBCACHE-1582:
-----------------------------------------

Hi All,


I am a newbie and trying to work out the problems I am facing with cache. I came across a similar problem. Can someone please guide me on how to apply this patch?

Thanks in advace.

> ExpirationAlgorithm doesn't evict nodes that have been created in a long Tx 
> ----------------------------------------------------------------------------
>
>                 Key: JBCACHE-1582
>                 URL: https://issues.jboss.org/browse/JBCACHE-1582
>             Project: JBoss Cache
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Eviction
>    Affects Versions: 3.0.0.GA, 3.0.1.GA, 3.0.2.GA, 3.0.3.GA, 3.1.0.GA, 3.2.0.GA, 3.2.1.GA, 3.2.2.GA, 3.2.3.GA, 3.2.4.GA, 3.2.5.GA
>            Reporter: Nicolas Filotto
>            Assignee: Manik Surtani
>             Fix For: 3.2.6.GA
>
>         Attachments: Expiration_and_LRU_solution_based_on_command_and_transaction_transfer.patch, TestEvictionAlgorithms.java, TestExpirationAlgorithm.java, TestExpirationAlgorithm.java, TestExpirationAlgorithm.java
>
>
> I noticed that I had a memory leak in my application when I use the ExpirationAlgorithm (maybe this bug happens with other algorithms) due to some nodes that were never evicted. After a deeper investigation, I noticed that no EvictionEntry was created for those nodes since the method getExpiration returns null (which also means that cache.peek(fqn, false) returns null). I finally found the problem, that is because if the Expiration Thread wakes up before that the related Tx is committed, it doesn't find the node into the cache so it considers it as removed but in fact it is just because the Tx has not yet been committed. This has for consequence that the node will never be evicted and thus create a memory leak.
> Please find the related unit test as attached file.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosscache-issues mailing list