-
Bug
-
Resolution: Done
-
Blocker
-
5.2.4.Final, 5.2.5.Final, 5.2.6.Final, 5.3.0.Final
-
- Configure DIST cache with non-shared cache store, 2 nodes
- Boot 1st node
- Put data
- Boot 2nd node
- See data store on the 2nd node, nothing is stored
In DistCacheStoreInterceptor.skip():
private boolean skip(InvocationContext ctx, Object key, FlagAffectedCommand command) { return skip(ctx, command) || skipKey(key) || (isUsingLockDelegation && !cdl.localNodeIsPrimaryOwner(key) && (!cdl.localNodeIsOwner(key) || ctx.isOriginLocal())); }
The 3rd condition returns true on rebalance, so the data is not stored in the cache store.
- The caller is org.infinispan.statetransfer.StateConsumerImpl.doApplyState
- The iic is org.infinispan.context.SingleKeyNonTxInvocationContext
- The example command is:
PutKeyValueCommand{key=ByteArrayKey{data=ByteArray{size=9, hashCode=cb62ce78, array=0x033e06666f6f3839..}}, value=CacheValue{data=ByteArray{size=6, array=0x033e03626172..}, version=4294968192}, flags=[CACHE_MODE_LOCAL, SKIP_REMOTE_LOOKUP, PUT_FOR_STATE_TRANSFER, SKIP_SHARED_CACHE_STORE, SKIP_OWNERSHIP_CHECK, IGNORE_RETURN_VALUES, SKIP_XSITE_BACKUP], putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1, successful=true}