[jbosscache-issues] [JBoss JIRA] Created: (JBCACHE-1552) Cache.removeNode(Fqn) does not affect cache loading until commit

Krzysztof Sobolewski (JIRA) jira-events at lists.jboss.org
Wed Oct 28 07:40:08 EDT 2009


Cache.removeNode(Fqn) does not affect cache loading until commit
----------------------------------------------------------------

                 Key: JBCACHE-1552
                 URL: https://jira.jboss.org/jira/browse/JBCACHE-1552
             Project: JBoss Cache
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: Cache loaders
    Affects Versions: 3.2.1.GA
            Reporter: Krzysztof Sobolewski
            Assignee: Manik Surtani
         Attachments: DeletedNodesLoadTest.java

A sequence of operations like this:

// we have something in the cache
cache.put(fqn, key, value);
// but it's not in memory right now
cache.evict(Fqn.ROOT, true);

tm.begin();
// I want to remove it
cache.removeNode(Fqn.ROOT); // returns false, BTW
// and expect it to not be there
assert cache.get(fqn, key) == null; // fails
tm.commit();

assert cache.get(fqn, key) == null; // passes if no get() in transaction


The problem is that the failing get() loads the node from cache loader. The second assertion passes, because the modification is recorded in the transaction and carried out on the cache loader during commit (it is also replicated across the cluster). But otherwise the cache does not notice the remove().
I think it can also lead to inconsistency between cache loader and transient state (the get() in transaction loads to memory and commit removes from cache loader).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosscache-issues mailing list