-
Notifications
You must be signed in to change notification settings - Fork 592
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
r/consensus: fixed reusing follower sequence id #12990
Conversation
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 confirm when testing locally this patch fixes the issue where it was initially observed in PR #12716 when testing the ducktape test in the last commit
nice find, looks like we are missing some test coverage for linearizable barrier here? worth adding one? |
and what was the situation? presumably it was a duplicate of the value of the first instance of |
7e1ba92
to
441ddec
Compare
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.
just a clarification.
There was a unit test failure in
|
b0dc9ba
b0dc9ba
to
f3f232c
Compare
test failure seems related. |
All the places where follower sequence id is updated use post incrementation. Using pre incrementation operator in heartbeat manager lead to a situation in which two requests were assigned the same sequence_id. Signed-off-by: Michal Maslanka <michal@redpanda.com>
Linerizable barrier should make the `_committed_offset` to advance to the latest possible value. Added flushing of leader log as a part of linearizable barrier to move the `_committed_offset` forward Signed-off-by: Michal Maslanka <michal@redpanda.com>
Grab `_op_lock` in `consensus::lineraizable_barrier` to wait for follower replies to take effect. This makes linearizable_barrier more strict as before returning result leader waits for the follower replies to be processed. Signed-off-by: Michal Maslanka <michal@redpanda.com>
Signed-off-by: Michal Maslanka <michal@redpanda.com>
All the places where follower sequence id is updated use post incrementation. Using pre incrementation operator in heartbeat manager lead to a situation in which two requests were assigned the same
sequence_id
.Backports Required
Release Notes