Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Please take a look at the following snippet:
private void handleThrowable( ... ) { if (recoverable(err)) { ... scheduleRetry(() -> sendWithRetry(randomNode(peer), requestFactory, stopTime, fut)); } else { fut.completeExceptionally(err); } }
In case of a recoverable error, the request will be sent once again. But if 2 out of 3 nodes had already been stopped, this retry logic will stuck in an infinite loop. The reason is that ConnectException is considered recoverable, and we are choosing another node keeping in mind only the node that had failed during current iteration.
Attachments
Attachments
Issue Links
- is blocked by
-
IGNITE-20091 Switch from common raft client to topology aware one within partitions.
- Open