-
Notifications
You must be signed in to change notification settings - Fork 17
Fix double synchronization of transaction log + integrity checks #912
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
Conversation
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## stable #912 +/- ##
==========================================
+ Coverage 95.34% 95.36% +0.01%
==========================================
Files 167 167
Lines 10159 10195 +36
==========================================
+ Hits 9686 9722 +36
Misses 473 473
🚀 New features to boost your workflow:
|
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.
Pull Request Overview
Fixes a critical bug that caused transaction log corruption due to double synchronization in the Drop implementation. The PR removes the problematic Drop implementation and adds integrity validation to detect broken replication logs early.
Key changes:
- Removed the Drop implementation from TransactionLog that was causing double synchronization
- Added comprehensive integrity checks to validate transaction log state during loading
- Updated function signature to accept path by reference instead of ownership
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
reductstore/src/replication/transaction_log.rs | Removed Drop implementation, added integrity validation, changed path parameter handling |
reductstore/src/replication/replication_task.rs | Updated to handle integrity check failures with fallback log recreation |
reductstore/src/replication/replication_sender.rs | Updated function call to match new signature |
CHANGELOG.md | Added entry for the bug fix |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Closes #
Please check if the PR fulfills these requirements
What kind of change does this PR introduce?
Bug fix
What was changed?
Patch #909 caused corruption of the transaction log due to double synchronization in the Drop implementation. The PR removes the Drop implementation and adds an integrity test to detect broken replication at the beginning. This may help to understand how the log breaks in #898.
Related issues
#909
#898
Does this PR introduce a breaking change?
No
Other information: