You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Uttsel (Jira)" <ji...@apache.org> on 2022/08/31 10:13:00 UTC

[jira] [Commented] (IGNITE-17508) Exception handling in the partition replication listener for RAFT futures

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

Sergey Uttsel commented on IGNITE-17508:
----------------------------------------

[~v.pyatkov] LGTM

> Exception handling in the partition replication listener for RAFT futures
> -------------------------------------------------------------------------
>
>                 Key: IGNITE-17508
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17508
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>
> In the replication listener ({_}PartitionReplicaListener{_}) where we have the pattern:
> {code:java}
> raftFut.thenApply(ignored -> result);{code}
> we should worry about handling RAFT exceptions, including analyzing whether raftFut result.
> Can distinguish following exception types for RAFT:
>  * RAFT cannot replicate a command for the timeout ({_}TimeoutException{_}). Hence, this exception leads to the replication timeout exception ({_}ReplicationTimeoutException{_}).
>  * It throws some internal exception ({_}RaftException{_}). This exception should be wrapped of the common replication exception ({_}ReplicationException{_}).
>  * Finally, RAFT throws java exceptions (NullPointerException, IndexOutOfRangeException e.t.c). Those exceptions shouldn't be touched, is will be through as is.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)