]
Emmanuel Bernard updated ISPN-5088:
-----------------------------------
Workaround Description: Clear each AtomicMap via direct access
(cache.get(key).clear()) before deleting it seems to work but is transactionally unsound
most likely. Clear each AtomicMap via the atomic map retrieval proxy before deleting does
not work. (was: clear each AtomicMap before deleting it seems to work; however you need
to do ((Map) cache1.get(AMKEY)).clear(); as clearing the atomicMap won't have the same
effect)
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: Dan Berindei
Priority: Critical
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}