[
https://issues.apache.org/jira/browse/IGNITE-25025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Bessonov reassigned IGNITE-25025:
--------------------------------------
Assignee: Ivan Bessonov
> 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
> Assignee: Ivan Bessonov
> Priority: Major
> Labels: ignite-3
>
> {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)