]
Dan Berindei updated ISPN-12725:
--------------------------------
Git Pull Request:
Conflict resolution fails in transactional cache with auto-commit
disabled
--------------------------------------------------------------------------
Key: ISPN-12725
URL:
https://issues.redhat.com/browse/ISPN-12725
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 11.0.9.Final, 12.0.0.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
Fix For: 12.1.0.Final, 11.0.10.Final
Conflict resolution is not wrapping cache write operations in explicit transactions. If
the cache has auto-commit disabled, conflict resolution fails with this exception:
{noformat}
13:11:27,307+0100 DEBUG [org.infinispan.CLUSTER] (non-blocking-thread--p2-t1) ISPN000524:
Conflict resolution failed for cache C with topology CacheTopology{id=50,
phase=CONFLICT_RESOLUTION, rebalanceId=15, currentCH=DefaultConsistentHash{ns=256, owners
= (3)[D-32271: 128+128, C-48322: 64+64, A-7433: 64+64]}, pendingCH=null, unionCH=null,
actualMembers=[D-32271, C-48322, A-7433],
persistentUUIDs=[00355068-c9b0-465f-9be8-3bb214f7af74,
8a353c3d-8d9f-41b4-a3ae-81cb15336e0a, 07936251-a5c8-480b-ad24-fa6b804c60c5]}:
java.lang.IllegalArgumentException: Cannot create a transactional context without a valid
Transaction instance.
at
org.infinispan.context.impl.TransactionalInvocationContextFactory.createInvocationContext(TransactionalInvocationContextFactory.java:63)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at
org.infinispan.cache.impl.InvocationHelper.createInvocationContextWithImplicitTransaction(InvocationHelper.java:174)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.InvocationHelper.lambda$new$0(InvocationHelper.java:47)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.DecoratedCache.writeContext(DecoratedCache.java:740)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.InvocationHelper.invokeAsync(InvocationHelper.java:129)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.CacheImpl.putAsync(CacheImpl.java:1398)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.DecoratedCache.putAsync(DecoratedCache.java:683)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at
org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.putAsync(AbstractDelegatingAdvancedCache.java:338)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at org.infinispan.cache.impl.EncoderCache.putAsync(EncoderCache.java:456)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at
org.infinispan.conflict.impl.DefaultConflictManager.lambda$doResolveConflicts$7(DefaultConflictManager.java:324)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
[rt.jar:1.8.0_275]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
[rt.jar:1.8.0_275]
at
org.infinispan.conflict.impl.DefaultConflictManager$ReplicaSpliterator.tryAdvance(DefaultConflictManager.java:498)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at java.util.Spliterator.forEachRemaining(Spliterator.java:326) [rt.jar:1.8.0_275]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
[rt.jar:1.8.0_275]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
[rt.jar:1.8.0_275]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
[rt.jar:1.8.0_275]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
[rt.jar:1.8.0_275]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[rt.jar:1.8.0_275]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
[rt.jar:1.8.0_275]
at
org.infinispan.conflict.impl.DefaultConflictManager.doResolveConflicts(DefaultConflictManager.java:282)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
at
org.infinispan.conflict.impl.DefaultConflictManager.lambda$resolveConflicts$1(DefaultConflictManager.java:249)
[infinispan-core-11.0.9.Final-redhat-00001.jar:11.0.9.Final-redhat-00001]
{noformat}