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

hints: send_one_hint: file_send_gate holder is released too early #15110

Closed
gusev-p opened this issue Aug 21, 2023 · 2 comments
Closed

hints: send_one_hint: file_send_gate holder is released too early #15110

gusev-p opened this issue Aug 21, 2023 · 2 comments
Assignees
Labels
area/hinted handoff Issues related to Hinted Handoff
Milestone

Comments

@gusev-p
Copy link

gusev-p commented Aug 21, 2023

It's released before the possible call to on_hint_send_failure in then_wrapped. As a result, the effects of on_hint_send_failure (segment_replay_failed flag) were not visible in send_one_file after ctx_ptr->file_send_gate.close(), so we could decide that the segment was sent in full and delete it even if sending of some hints led to errors.

@gusev-p gusev-p self-assigned this Aug 21, 2023
@gusev-p
Copy link
Author

gusev-p commented Aug 21, 2023

fixed as part of this PR

@mykaul mykaul added the area/hinted handoff Issues related to Hinted Handoff label Aug 21, 2023
raphaelsc pushed a commit to raphaelsc/scylla that referenced this issue Aug 29, 2023
The problem was that the holder in with_gate
call was released too early. This happened
before the possible call to on_hint_send_failure
in then_wrapped. As a result, the effects of
on_hint_send_failure (segment_replay_failed flag)
were not visible in send_one_file after
ctx_ptr->file_send_gate.close(), so we could decide
that the segment was sent in full and delete
it even if sending of some hints led to errors.

Fixes scylladb#15110
@DoronArazii DoronArazii added this to the 5.4 milestone Aug 29, 2023
denesb pushed a commit that referenced this issue Dec 18, 2023
The problem was that the holder in with_gate
call was released too early. This happened
before the possible call to on_hint_send_failure
in then_wrapped. As a result, the effects of
on_hint_send_failure (segment_replay_failed flag)
were not visible in send_one_file after
ctx_ptr->file_send_gate.close(), so we could decide
that the segment was sent in full and delete
it even if sending of some hints led to errors.

Fixes #15110

(cherry picked from commit 9fd3df1)
@denesb
Copy link
Contributor

denesb commented Dec 18, 2023

Backported to 5.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/hinted handoff Issues related to Hinted Handoff
Projects
None yet
Development

No branches or pull requests

4 participants