Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BookKeeperLog should not open-fence Ledgers which are marked as LedgerStatus.Empty #6030

Closed
andreipaduroiu opened this issue May 17, 2021 · 0 comments · Fixed by #6031
Closed

Comments

@andreipaduroiu
Copy link
Member

Describe the bug
If we try to open-fence ledgers that have previously been marked as Empty (only possible from a previous fence-out operation) then we might hit a missing ledger (deleted by us; but we crashed before updating metadata). This currently prevents the recovery from proceeding (or even starting).

We should modify the code in one of two ways:

  1. Do not even attempt to open-fence empty ledgers (we are 100% certain they are empty since we only assign that status after a previous recovery that verified they are empty).
  2. Continue as we do now, but if we get a LedgerNotFoundException, simply log a WARN and move on.

Option 2 is preferable since we always attempt to re-verify a previous evaluation vs blindly trusting it.

@andreipaduroiu andreipaduroiu self-assigned this May 17, 2021
sachin-j-joshi pushed a commit that referenced this issue May 18, 2021
Cherry-pick #6030 into r0.9.

Issue 6030: (SegmentStore) Ignoring missing ledgers that were previously marked as Empty. (#6031)

During the BookKeeperLog initialization phase, we are now ignoring ledgers that we cannot open-fence due to them missing but have been previously identified as being Empty.

Signed-off-by: Andrei Paduroiu <andrei.paduroiu@emc.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants