You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ratis.apache.org by 宋子阳 <sz...@163.com> on 2022/05/31 01:56:11 UTC

InstallSnapshot fails when snapshot has multiple chunks

Hi all,

We recently discovered a bug related to InstallSnapshot. When leader install snapshot to a slow follower, if the snapshot contains multiple files or multiple chunks, only the last file will be placed under followers’ statemachine dir, others are remained in tmp dir.
More details please refer to issue https://issues.apache.org/jira/browse/RATIS-1587 <https://issues.apache.org/jira/browse/RATIS-1587>

We wonder if we name the tmp dir use leader’s request-uuid would solve this problem. Request-uuid is shared among multiple installsnaphot-rpc requests for multiple files in a single snapshot.

BTW, If this issue is solved in ratis master branch, what is the best practice for us IoTDB to use the latest code, use a snapshot deployment or other ways?

Best wishes,
William Song  

Re: InstallSnapshot fails when snapshot has multiple chunks

Posted by Tsz Wo Sze <sz...@gmail.com>.
Hi William,

It is a good idea to use request.getSnapshotChunk().getRequestId() to
create the tmp dir. How about adding a "snapshot-" prefix?

We should roll out a 2.3.1 bug fix release.

Tsz-Wo


On Mon, May 30, 2022 at 6:56 PM 宋子阳 <sz...@163.com> wrote:

> Hi all,
>
> We recently discovered a bug related to InstallSnapshot. When leader
> install snapshot to a slow follower, if the snapshot contains multiple
> files or multiple chunks, only the last file will be placed under
> followers’ statemachine dir, others are remained in tmp dir.
> More details please refer to issue
> https://issues.apache.org/jira/browse/RATIS-1587 <
> https://issues.apache.org/jira/browse/RATIS-1587>
>
> We wonder if we name the tmp dir use leader’s request-uuid would solve
> this problem. Request-uuid is shared among multiple installsnaphot-rpc
> requests for multiple files in a single snapshot.
>
> BTW, If this issue is solved in ratis master branch, what is the best
> practice for us IoTDB to use the latest code, use a snapshot deployment or
> other ways?
>
> Best wishes,
> William Song