Ivan Bessonov created IGNITE-25025: -------------------------------------- Summary: Accumulate retry reasons in RetryContext Key: IGNITE-25025 URL: https://issues.apache.org/jira/browse/IGNITE-25025 Project: Ignite Issue Type: Improvement Reporter: Ivan Bessonov
{code:java} RaftGroupServiceImpl#sendWithRetry(CompletableFuture<R>, RetryContext){code} In this method we might fail with a timeout. If we do, we create an exception with a detailed message. I believe that these details are not enough. What I propose: * First of all, move exception creation code into a context itself. * For each {{nextAttempt}} call, pass a *short* message that would describe a reason for the retry. Like: ** {{Exception "message" from peer "foo".}} ** {{Peer "foo" returned status EBUSY.}} ** etc. ** I repeat, messages should be short. * Preserve a timestamp of each retry attempt. * We should keep in mind that there might be a lot of retries. Let's only accumulate the last 25 of them, for example. * Concatenate these reasons into a readable format and add to the {{{}TimeoutException{}}}'s message. -- This message was sent by Atlassian Jira (v8.20.10#820010)