]
Nicolas Filotto edited comment on JBCACHE-1582 at 4/28/11 9:43 AM:
-------------------------------------------------------------------
Obviously JBC 3.2.6.GA has not been released officially but you can still get it from the
maven repo
was (Author: nfilotto):
Obviously there is no official version of JBC 3.2.6.GA but you can still get it from
the maven repo
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: