3 Replies Latest reply: Nov 22, 2010 11:25 AM by Manik Surtani RSS

Data inconsistency across nodes with transactions

Abhishek Gupta Newbie

I have a cache in replication mode across 2 nodes (A and B).

 

Node A has transactions enabled with useEagerLocking="true". Node B does not have transactions enabled.

Here are the operations I perform -

 

"keyX" already exists in the cache, visible from both nodes.

 

1. NODE A :  tx.being()

2. NODE A :  remove("keyX")

3. NODE B : remove ("keyX")

    (at this time node B waits to acquire the lock)

4. NODE A :  tx.rollback()

5. NODE B: (successfully completed operation 3)

 

6. NODE B:  get("keyX")

   ==> This returns a value! "keyX" is not actually removed !

7. NODE A:  get("keyX")

   ==> This returns a value! "keyX" is not actually removed !

 

This seems incorrect. At 5. when the node B returns successfully from the remove, it should have actually removed the entry from the cache. Please confirm you believe this is an issue too and I'll be glad to open a jira.

 

 

Thanks,

Abhi