]
William Burns commented on ISPN-5088:
-------------------------------------
I thought about this a little more last night after work and I tweaked the test a bit.
The test passes if the primary owner of the key is the one doing the write. However if it
is not the primary owner it will fail (this appears to be the same in ISPN 6 and 7).
Deleted entries from (FineGrained)AtomicMap reappear in subsequent
transaction
------------------------------------------------------------------------------
Key: ISPN-5088
URL:
https://issues.jboss.org/browse/ISPN-5088
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 7.0.2.Final
Reporter: Sanne Grinovero
Assignee: William Burns
Priority: Critical
Labels: for_OGM
Attachments: Testcase-ISPN-5088.patch
After a {{FineGrainedAtomicMap}} containing some data is deleted in a transaction, but
then in the same transaction it's re-created, the next transaction will be able to
read the original data which it contained.
Some pseudocode:
{code}tx1.start();
am = AtomicMapLookup.getFineGrainedAtomicMap( cache, cacheKey, true );
am.put(k1, v1);
tx1.commit()
tx2.start();
am = AtomicMapLookup.getFineGrainedAtomicMap( cache, cacheKey, true );
am.put(k3, v3);
AtomicMapLookup.removeAtomicMap( cache, cacheKey );
am = AtomicMapLookup.getFineGrainedAtomicMap( cache, cacheKey, true );
am.put(k2,v2);
tx2.commit()
tx3.start();
am = AtomicMapLookup.getFineGrainedAtomicMap( cache, cacheKey, true );
am.contains(k1) == false; // FAILS!
tx3.commit();{code}
Also applies apparently to a normal AtomicMap if using DIST_SYNC.
I'm attaching a full test, which results in:
{noformat}
Failed tests:
RepeatableReadFineGrainedAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596
null
FineGrainedAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596
null
DistFineGrainedAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596
null
DistRepeatableReadFineGrainedAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596
null
DistRepeatableReadAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596
null
DistAtomicMapAPITest>BaseAtomicHashMapAPITest.testInsertDeleteInsertCycle:596 null
Tests run: 5636, Failures: 6, Errors: 0, Skipped: 0
{noformat}