Description
In #RATIS-2148, the issue of receiving the last snapshot file without considering the possibility of intermediate blocks failing was fixed, which resulted in the incorrect triggering of loadStateMachine.
Some issues were missed in #RATIS-2148:
For example, Leader L will send the following data to Follower F in the form of a snapshot: data [a, b, c,..., z].
L will split the data into 0: [a, b, c, d], 1: [e, f, g, h],...
F already contains data [a, b, c, d, e].
F will reply with ALREADY_INSTALL after receiving data-0 and will not update nextChunkIndex.
This will result in failure to receive subsequent data_chunk correctly.
Need to update nextChunkIndex before returning:
nextChunkIndex.set(snapshotChunkRequest.getRequestIndex() + 1);
Attachments
Attachments
Issue Links
- links to