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)