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

fix leadership election TTL issue #217

Merged
merged 1 commit into from
Feb 19, 2024
Merged

fix leadership election TTL issue #217

merged 1 commit into from
Feb 19, 2024

Conversation

bgentry
Copy link
Contributor

@bgentry bgentry commented Feb 19, 2024

Due to a glaring oversight in the leader elector code, it actually uses the same interval for both the internal ticker (for re-electing itself) and for extending the TTL in the database. These timers and queries are of course not instantaneous, which means a perfectly functional leader can fail to re-elect itself cleanly.

Extensive test coverage on the elector to come in subsequent PRs.

Fixes #216.

@bgentry bgentry added the bug Something isn't working label Feb 19, 2024
@bgentry bgentry requested a review from brandur February 19, 2024 18:00
@bgentry bgentry self-assigned this Feb 19, 2024
Due to a glaring oversight in the leader elector code, it actually uses
the same interval for both the internal ticker (for re-electing itself)
and for extending the TTL in the database. These timers and queries are
of course not instantaneous, which means a perfectly functional leader
can fail to re-elect itself cleanly.

Extensive test coverage on the elector to come in subsequent PRs.

Fixes #216.
@bgentry bgentry merged commit 9e532a4 into master Feb 19, 2024
10 checks passed
@bgentry bgentry deleted the bg-fix-elector-ttl branch February 19, 2024 18:05
brandur added a commit that referenced this pull request Feb 19, 2024
Prepare a new release for `v0.0.21`, with the most important change
contained being #217, which fixes a bug in the leadership election code.

I know I said I'd switch to minor version releases after `v0.0.20`, but
since this version is largely a hotfix with a small change, I did
another patch.
@brandur brandur mentioned this pull request Feb 19, 2024
brandur added a commit that referenced this pull request Feb 19, 2024
Prepare a new release for `v0.0.21`, with the most important change
contained being #217, which fixes a bug in the leadership election code.

I know I said I'd switch to minor version releases after `v0.0.20`, but
since this version is largely a hotfix with a small change, I did
another patch.
brandur added a commit that referenced this pull request Feb 19, 2024
Follows up #217 to add TTL padding on the elector's initial election
attempt in addition to adding it to reelection attempts as was done
previously. We move the TTL calculation to a struct variable for easier
and more foolproof access, and to be able put a comment on it.
brandur added a commit that referenced this pull request Feb 19, 2024
Follows up #217 to add TTL padding on the elector's initial election
attempt in addition to adding it to reelection attempts as was done
previously. We move the TTL calculation to a struct variable for easier
and more foolproof access, and to be able put a comment on it.
brandur added a commit that referenced this pull request Feb 19, 2024
Follows up #217 to add TTL padding on the elector's initial election
attempt in addition to adding it to reelection attempts as was done
previously. We move the TTL calculation to a struct variable for easier
and more foolproof access, and to be able put a comment on it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants