Prevent files still referenced by the on disk segments_N from deletion. #2336
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Marc Handalian [email protected]
Description
This change updates the cleanup and validation steps after a replication event occurs to prevent
deleting files still referenced by both the on disk segments_N file and the in memory SegmentInfos.
After cleaning it validates the latest in memory SegmentInfos against the metadata sent from the primary shard.
This change also updates the sequence of steps in ReplicationTarget to first recreate the primary's SegmentInfos object so that we can perform validation before updating our reader. This also ensures our test will fail if the index is corrupt. Without this the test logs errors but passes because reader has already been updated with the latest docs and the shard is not removed - #2332.
Issues Resolved
closes #2331
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.