Skip to content
Snippets Groups Projects
Commit b1095c1c authored by Georgiy Lebedev's avatar Georgiy Lebedev Committed by Vladimir Davydov
Browse files

memtx: fix force recovery handling

Force recovery needs to follow the following logic: any unsuccessful system
space request must make recovery fail (including failure to decode an xrow,
when we are not sure we have finished processing system space request). If
the request is a non-insert one (e.g., raft or synchro) or addresses a user
space, it means we have finished processing system space requests, and from
this moment force recovery can be enabled — change the behaviour
accordingly.

We assume the request order in the snapshot is the following:
1. system space requests;
2. user space requests;
3. non-insert requests (e.g., raft or synchro).

Refactor the force recovery logic: add a enumeration to track snapshot
recovery state and add a new diagnostic for the case when the snapshot
contains has no system spaces.

Closes #7974

NO_DOC=bugfix
parent 928e5733
No related branches found
No related tags found
No related merge requests found
Showing
with 319 additions and 15 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment