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