Do not move VersionEdit into AtomicGroupReadBuffer #6400
Closed
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.
Summary:
#6383 surfaced an issue with
VersionSet
/ReactiveVersionSet
andAtomicGroupReadBuffer::AddEdit
(which was added in #5411):
AddEdit
moves theVersionEdit
passed to it intoreplay_buffer_
,however, the client
VersionSet
classes keep using it afterwards. Thisseemed to work before the refactoring but it really did not: since
VersionEdit
used to have a user-declared destructor, no moveconstructor/move assignment operator was generated, and the
move
inAddEdit
was really a copy. The patch makes the copy explicit. Note: itshould be possible to rework this logic so that we can get away
with the move but for now, this should fix the issue.
Test Plan:
make check
make analyze