-
Bug
-
Resolution: Done
-
Major
-
9.1.0.Final
-
None
GetAllCommand in BaseDistributionInterceptor handles all unsuccessful responses by throwing OutdatedTopologyException.
BaseStateTransferInterceptor assumes that this is due to UnsureResponse in a scenario where it should be possible to retry the command immediately.
If this occurs due to CacheNotFoundResponse (node being suspected) but before the availability mode is updated/consistent hash is updated with lost segments assigned to other nodes, the command is retried in a loop up to a point where the thread hits stack overflow.
This does not affect regular cache.get() since this one throws AllOwnersLostException instead and this is treated differently in BaseStateTransferInterceptor.