[ https://issues.apache.org/jira/browse/IGNITE-25025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ivan Bessonov updated IGNITE-25025: ----------------------------------- Reviewer: Roman Puchkovskiy > 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 > Time Spent: 10m > Remaining Estimate: 0h > > {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)