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)

Reply via email to