-
Notifications
You must be signed in to change notification settings - Fork 741
Fix PDisk shred free chunks in transit and after vdisk deletion #18279
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
|
🟢 |
|
⚪ DetailsTest history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪ DetailsTest history | Ya make output | Test bloat
⚪ DetailsTest history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
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
This PR fixes issues with PDisk shredding by ensuring that chunks flagged for deletion are correctly marked as dirty and processed appropriately during state transitions.
- Marks chunks as dirty during owner kill when shred mode is enabled.
- Adds a loop to check and schedule shredding for chunks in transition between states.
| << " state# " << state.ToString() | ||
| << ", there are already ContinueShredsInFlight# " << ContinueShredsInFlight.load() | ||
| << " so just wait for it to arrive. " | ||
| << " ShredGeneration# " << ShredGeneration); |
Copilot
AI
Jun 6, 2025
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.
The early return within the loop means that only the first matching dirty chunk is processed per call. If this is intended, please add a comment to clarify that scheduling only one continue shred per invocation is by design.
| << " ShredGeneration# " << ShredGeneration); | |
| << " ShredGeneration# " << ShredGeneration); | |
| // Early return is intentional: only the first matching dirty chunk is processed per invocation. | |
| // This ensures that scheduling only one continue shred per invocation is by design. |
| << ", scheduling ContinueShred. " | ||
| << " ShredGeneration# " << ShredGeneration); | ||
| ContinueShredsInFlight++; | ||
| PCtx->ActorSystem->Schedule(TDuration::MilliSeconds(50), |
Copilot
AI
Jun 6, 2025
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.
[nitpick] The literal delay value '50' in TDuration::MilliSeconds(50) could be replaced with a named constant to improve readability and maintainability.
| PCtx->ActorSystem->Schedule(TDuration::MilliSeconds(50), | |
| PCtx->ActorSystem->Schedule(TDuration::MilliSeconds(CONTINUE_SHRED_DELAY_MS), |
Changelog entry
...
Changelog category
Description for reviewers
Close #18217
Close #18218