[ 
https://issues.apache.org/jira/browse/RATIS-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16870386#comment-16870386
 ] 

Tsz Wo Nicholas Sze commented on RATIS-573:
-------------------------------------------

- Let's don't change done().  The code should not call done() when it is 
already done.

- Let's do not check future override.  It makes the code complicated.  If the 
future code override code has a bug, it should be fixed there.
{code:java}
+    void failed(IOException e) {
+      this.getFuture().completeExceptionally(e);
+      // check future override. Fail the base future also.
+      if (!future.isDone()) {
+        future.completeExceptionally(e);
+      }
+    } 
 {code}
- Let's move logIOException to a local variable in run().
{code}
+  /** if and when a log task encounters an exception */
+  private RaftLogIOException logIOException = null;
{code}


> Handle Raft Log Append Failure
> ------------------------------
>
>                 Key: RATIS-573
>                 URL: https://issues.apache.org/jira/browse/RATIS-573
>             Project: Ratis
>          Issue Type: Improvement
>          Components: server
>            Reporter: Supratim Deka
>            Assignee: Supratim Deka
>            Priority: Major
>         Attachments: RATIS-573.00.patch, RATIS-573.01.patch, 
> RATIS-573.02.patch, RATIS-573.03.patch, RATIS-573.04.patch, 
> RATIS-573.05.patch, RATIS-573.06.patch
>
>
> As part of Handling IO Failures, HDDS-1595.
> The scope of this jira is to handle failure in RAFT log append by:
> 1. notify the error to the state machine for consumer specific handling
> 2. propagate the error to the initiator (to the client from leader, to the 
> leader from follower).



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

Reply via email to