]
Work on ISPN-7889 started by Dan Berindei.
------------------------------------------
BaseDistributionInterceptor.remoteGet may cause concurrency issues
------------------------------------------------------------------
Key: ISPN-7889
URL:
https://issues.jboss.org/browse/ISPN-7889
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.1.0.Alpha1
Reporter: Radim Vansa
Assignee: Dan Berindei
Priority: Major
{{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.