]
Work on ISPN-6308 started by William Burns.
-------------------------------------------
Stream iterator method can fail sometimes with a node failure
-------------------------------------------------------------
Key: ISPN-6308
URL:
https://issues.jboss.org/browse/ISPN-6308
Project: Infinispan
Issue Type: Bug
Components: Distributed Execution and Map/Reduce
Affects Versions: 8.1.2.Final
Reporter: William Burns
Assignee: William Burns
Fix For: 8.2.0.Final
While adding some additional changes for replication using distributed streams I ran the
stress test. I found that iterator could fail somehow. Need to patch this issue.
Using following settings:
{code}
protected final static int CACHE_COUNT = 5;
protected final static int THREAD_MULTIPLIER = 15;
protected final static long CACHE_ENTRY_COUNT = 5000;
{code}
{code}
15:25:29,655 FATAL (ForkThread-17,DistributedStreamRehashStressTest)
[DistributedStreamRehashStressTest] Exception encountered:
java.lang.IllegalArgumentException:
Thread[ForkThread-17,DistributedStreamRehashStressTest,5,main]-Found incorrect amount 6 of
entries, expected 10 for segment 39 missing entries [ImmortalCacheEntry{key=1922,
value=1922}, ImmortalCacheEntry{key=2107, value=2107}, ImmortalCacheEntry{key=2265,
value=2265}, ImmortalCacheEntry{key=2412, value=2412}, ImmortalCacheEntry{key=2446,
value=2446}, ImmortalCacheEntry{key=2575, value=2575}, ImmortalCacheEntry{key=3315,
value=3315}, ImmortalCacheEntry{key=3324, value=3324}, ImmortalCacheEntry{key=3349,
value=3349}, ImmortalCacheEntry{key=3675, value=3675}] on iteration 3
at
org.infinispan.stream.stress.DistributedStreamRehashStressTest.lambda$testStressNodesLeavingWhileMultipleIterators$4(DistributedStreamRehashStressTest.java:139)
at
org.infinispan.stream.stress.DistributedStreamRehashStressTest.lambda$testStressNodesLeavingWhilePerformingCallable$5(DistributedStreamRehashStressTest.java:173)
at
org.infinispan.test.AbstractInfinispanTest$LoggingCallable.call(AbstractInfinispanTest.java:478)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
{code}