You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Shashikant Banerjee (JIRA)" <ji...@apache.org> on 2019/04/22 11:34:00 UTC

[jira] [Created] (RATIS-532) UnorderedAsync requests should fail instead of retrying the request in case of GroupMismatchException

Shashikant Banerjee created RATIS-532:
-----------------------------------------

             Summary: UnorderedAsync requests should fail instead of retrying the request in case of GroupMismatchException
                 Key: RATIS-532
                 URL: https://issues.apache.org/jira/browse/RATIS-532
             Project: Ratis
          Issue Type: Bug
          Components: client
    Affects Versions: 0.4.0
            Reporter: Shashikant Banerjee
            Assignee: Shashikant Banerjee
             Fix For: 0.4.0


UnorderedAsync#sendRequestWithRetry
{code:java}
if (e instanceof IOException) {
  if (e instanceof NotLeaderException) {
    client.handleNotLeaderException(request, (NotLeaderException) e, false);
  } else if (!(e instanceof GroupMismatchException)) {
    client.handleIOException(request, (IOException) e, null, false);
  }
} else {
  if (!client.getClientRpc().handleException(request.getServerId(), e, false)) {
    f.completeExceptionally(e);
    return;
  }
}

LOG.info("schedule retry for attempt #{}, policy={}, request={}", attemptCount, retryPolicy, request);
client.getScheduler().onTimeout(retryPolicy.getSleepTime(), () -> sendRequestWithRetry(pending, client),
    LOG, () -> clientId + ": Failed~ to retry " + request);
{code}
Currently, in case of GroupMismatchException, it is ignored and retried as per the retry policy.In case as such, it should just mark the reply future to complete exceptionally.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)