Fix a flaky issue with task percentage not stored in DB#421
Merged
petrutlucian94 merged 2 commits intoMay 13, 2026
Conversation
dfdbe84 to
665c0a9
Compare
| # The _call on the last task update might get overwritten by an | ||
| # out-of-order update with an older current_step value, so we need to | ||
| # ensure that the progress is not overwritten by an older step. | ||
| if new_current_step < task_progress_update.current_step: |
Member
There was a problem hiding this comment.
This is better than what we have now but it's still prone to race conditions. We rely on task_progress_update.current_step, but it may be incremented by a concurrent DB operation and we'd end up overwriting it, potentially decreasing current_step.
The safest approach would be to use a "compare-and-update" sql operation.
I'm ok with merging this PR as it is and add a TODO to use a db-level check.
Member
There was a problem hiding this comment.
Suggested comment:
# Quick progress updates may be processed out of order. We're trying to mitigate
# this by checking the current step.
#
# TODO: the current approach is still prone to race conditions since
# `task_progress_update.current_step` may be out of date. The safest approach
# would be to use a db-level `compare-and-update` sql operation.
e15f2af to
346f83f
Compare
346f83f to
0150826
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
It seems like there is a flaky issue with the percentage for Replicate Disks.
The final steps for replication are not stored in the DB and the UI doesn't display the 100% for disk replication. The worker reaches the 100%, but the 100% is never stored in the DB.
This issue seems to come from the
self._castfromupdate_task_progress_update.NOTE: Changing it to
_callseems to fix the issue, but the whole issue is hard to replicate.