-
Notifications
You must be signed in to change notification settings - Fork 593
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
[CORE-627] archival: Convert assertion to exception #24580
base: dev
Are you sure you want to change the base?
Conversation
Can we have tests that make things run in parallel so this doesn't break in future, @Lazin ? |
We do have such tests. In that case rm_stm was in a wired state and the partition move was in-progress. It's quite difficult to reproduce in a test. |
Retry command for Build#59810please wait until all jobs are finished before running the slash command
|
CI test resultstest results on build#59810
test results on build#59929
|
/ci-repeat 1 |
All jobs have failed after few minutes due to some infra issue. Restarted. |
upl->file_offset <= upl->final_file_offset, | ||
"Invalid upload candidate {}", | ||
upl); | ||
if (upl->sources.size() == 1 && upl->file_offset > upl->final_file_offset) { |
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.
Q: why does upl->sources.size()
need to equal 1
for this race condition?
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.
I guess that here it's not necessary to check this because sources.size() is always 1 (this path never merges data from several segments). Potentially, the upload may contain multiple segments. In this case it's totally fine for it to have any start/stop file offsets because the upload begins in one segment and ends in another segment.
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.
I can removes this because it's unnecessary and is probably confusing. WDYT?
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.
Personally, I would remove it if it's unnecessary/confusing.
The comment below (// Normally this shouldn't happen...
) might also be better if it were altered to highlight under what circumstances this path would be taken.
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.
done, please take a look
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.
Thanks! 👍
The situation in which the assertion is triggered can only be caused by a race and is retrieable. There is no need to crash the whole process in that case. Signed-off-by: Evgeny Lazin <[email protected]>
Retry command for Build#59929please wait until all jobs are finished before running the slash command
|
/ci-repeat 1 |
The situation in which the assertion is triggered can only be caused by a race and is retrieable. There is no need to crash the whole process in that case.
Backports Required
Release Notes