-
Bug
-
Resolution: Done
-
Major
-
9.1.0.Final
-
None
-
Sprint 10.0.0.Alpha1, Sprint 10.0.0.Alpha2, Sprint 10.0.0.Alpha0, Sprint 10.0.0.Beta1, DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34, DataGrid Sprint #35, DataGrid Sprint #36, DataGrid Sprint #37, DataGrid Sprint #38, DataGrid Sprint #39
BaseDistributionInterceptor.remoteGet or any call that accesses the context in an async future handler that is called multiple times in parallel may lead to concurrent modifications of the context.
These calls are usually handled using CompletableFuture.allOf() or using a CF with counter, but if one of the calls results in exceptional completion of the composed future, the processing continues (e.g. with a retry). The other parallel operation handlers are not stopped, though.
BaseDistributionInterceptor.remoteGet shouldn't be called in parallel because it does not even synchronize regular successful invocations.
A problem like this caused failures in GetAllCommandStressTest, and the issue was addressed for GetAllCommand in ISPN-7884.
- is related to
-
ISPN-8889 Data race in NonTxInvocationContext
- Closed
-
ISPN-7956 Investigate removing PartitionHandlingInterceptor
- Closed
- relates to
-
ISPN-10239 FineGrainedAtomicMap.clear() concurrency issues
- Closed
-
ISPN-13549 Data race in EntryWrappingInterceptor handling expired entries
- Closed
-
JDG-5028 Data race in EntryWrappingInterceptor handling expired entries
- Closed