-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Fix bugs related to the journal recovering from a UFS failure #9723
Conversation
Automated checks report:
Some checks failed. Please fix the reported issues and reply 'alluxio-bot, check this please' to re-run checks. |
Merged build finished. Test PASSed. |
Test PASSed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Automated checks report:
All checks passed! |
alluxio-bot, merge this please. |
Fixes Alluxio#9722 Fixes several edge cases in journal recovery. 1. If we fail to flush to the journal, do not try to recover, instead flag the stream as needsRecovery and handle the recovery on next operation 2. When recovering, make sure there is a previous journal entry 3. When recovering, create a new log file starting with the latest committed journal entry (instead of our current one) 4. When recovering, fail if the latest journal entry recovered from our buffer is not equal to our expected next sequence number - 1 5. When recovering, do not consider incomplete logs when inferring the last persisted sequence number from the file name (it will be INTEGER_MIN) pr-link: Alluxio#9723 change-id: cid-63623a4e96d91f9619605dd9cad1b7da7679ac9c
Fixes Alluxio#9722 Fixes several edge cases in journal recovery. 1. If we fail to flush to the journal, do not try to recover, instead flag the stream as needsRecovery and handle the recovery on next operation 2. When recovering, make sure there is a previous journal entry 3. When recovering, create a new log file starting with the latest committed journal entry (instead of our current one) 4. When recovering, fail if the latest journal entry recovered from our buffer is not equal to our expected next sequence number - 1 5. When recovering, do not consider incomplete logs when inferring the last persisted sequence number from the file name (it will be INTEGER_MIN) pr-link: Alluxio#9723 change-id: cid-63623a4e96d91f9619605dd9cad1b7da7679ac9c
Fixes Alluxio#9722 Fixes several edge cases in journal recovery. 1. If we fail to flush to the journal, do not try to recover, instead flag the stream as needsRecovery and handle the recovery on next operation 2. When recovering, make sure there is a previous journal entry 3. When recovering, create a new log file starting with the latest committed journal entry (instead of our current one) 4. When recovering, fail if the latest journal entry recovered from our buffer is not equal to our expected next sequence number - 1 5. When recovering, do not consider incomplete logs when inferring the last persisted sequence number from the file name (it will be INTEGER_MIN) pr-link: Alluxio#9723 change-id: cid-63623a4e96d91f9619605dd9cad1b7da7679ac9c
Fixes #9722
Fixes several edge cases in journal recovery.