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

fix(cluster): crash in cluster migration #4495

Merged
merged 1 commit into from
Jan 22, 2025
Merged

fix(cluster): crash in cluster migration #4495

merged 1 commit into from
Jan 22, 2025

Conversation

adiholden
Copy link
Collaborator

Fixes #4455
The bug:
When running the RestoreStreamer::WriteBucket the iterator was not valid, pointing to a location in dash table that is not occupied.
The reason for this was that the call to FlushChangeToEarlierCallbacks when traversing the buckets can delete entires in the dash table. This can happen when we remove finalized migration which results in flush slots operation. This operation also registers a callback which was invoked in FlushChangeToEarlierCallbacks.
The fix:
When traversing the bucket in WriteBucket/SerializeBucket we first update the iterator if needed.

@adiholden adiholden requested a review from BorysTheDev January 22, 2025 10:27
@romange
Copy link
Collaborator

romange commented Jan 22, 2025

@adiholden please update your branch - I want to see if actions will work better.

@adiholden adiholden merged commit d6adedb into main Jan 22, 2025
10 checks passed
@adiholden adiholden deleted the fix_4455 branch January 22, 2025 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dragonfly crashes during migrations
3 participants