[
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)