concurrency: resign election on campaign failure #21165
Open
+1
−7
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.
Fixes #21128.
I chose the approach of calling
e.Resign()immediately since it felt like a "fail safe" way to approach it without leaving dead keys. As mentioned in #21128, keeping thee.leaderSessionand allowing callers to invokee.Resign()would also work but this ensures that we deal with the potential loose keys.I would add an integration test for this but I couldn't figure out a way to cause a failure other than context cancellation, which was already correctly calling
e.Resign(). Any tips are welcome :D