You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2023/01/03 18:43:00 UTC

[jira] [Commented] (IGNITE-18495) Fix RAFT snapshot installation hang due to response swap on retry

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

Roman Puchkovskiy commented on IGNITE-18495:
--------------------------------------------

It looks like we can just port the corresponding fix from JRaft: [https://github.com/sofastack/sofa-jraft/commit/a1fa8c30a895fc45f39c9661eb383a890ba4b6d8]

> Fix RAFT snapshot installation hang due to response swap on retry
> -----------------------------------------------------------------
>
>                 Key: IGNITE-18495
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18495
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The scenario follows:
>  # InstallSnapshot request is sent, its processing starts hanging forever (it will be cancelled on step 3)
>  # After a timeout, second InstallSnapshot request is sent with same index+term as the first had; in JRaft, it causes a special handling (previous request processing is NOT cancelled)
>  # After a timeout, third InstallSnapshot request is sent with DIFFERENT index, so it cancels the first snapshot processing effectively unblocking the first thread
> In the original JRaft implementation, after being unblocked, the first thread fails to clean up, so subsequent retries will always see a phantom of an unfinished snapshot, so the snapshotting process will be jammed. Also, node stop might stuck because one 'download' task will remain unfinished forever.



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