-
Notifications
You must be signed in to change notification settings - Fork 810
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 default memberlist configuration value for RetransmitMult. #4269
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.
Good job! This PR definitely needs a CHANGELOG entry 😉
Looking into unit test failure... |
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.
Nice find!
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.
Good job! I left a couple of nits in the integration test. Failing unit tests looks flaky tests unrelated from this PR changes.
I was confused that we document the default Could we have (this could be a separate issue/PR) |
That's a good idea - makes the defaults more obvious and may have avoided this bug. I'll try it as a separate PR. Edit: Thinking about this, it might be a breaking change, setting a configuration explicitly to "0" will have different behavior. Will think on it. |
This can introduce unintended change of default values over time. (Our current approach can as well, but it’s more explicit about what’s going on). That said, I think it would be helpful. |
If configuration is not explicitly given for RetransmitMult (via `-memberlist.retransmit_factor`), then it is intended to be picked up from `DefaultLANConfig`. However, though the correct value was being used to configure `memberlist` itself, zero would be passed into the `TransmitLimitedQueue` used for broadcasting ring updates. This essentially means that ring updates are only ever gossiped once. Signed-off-by: Steve Simpson <[email protected]>
Signed-off-by: Steve Simpson <[email protected]>
Signed-off-by: Steve Simpson <[email protected]>
Signed-off-by: Steve Simpson <[email protected]>
Hold off merging this - the unit test failure appears to be a race condition in the unit test: the test will signal to shut down the memberlist service, then it will try and grab the state from the clients. Sometimes the memberlist service will shutdown before the test was able to grab the state. |
You can mark PR as draft, that prevents merging. |
The test was shutting down the KV store then attempting to read form it. Sometimes this would work if the KV took some time to shutdown, which it often will, but if it shuts down quickly, then the read will fail. Signed-off-by: Steve Simpson <[email protected]>
Fixed now, didn't seem worth pulling out into a separate PR. |
What this PR does:
If configuration is not explicitly given for RetransmitMult (via
-memberlist.retransmit_factor
), then it is intended to be picked upfrom
DefaultLANConfig
. However, though the correct value was beingused to configure
memberlist
itself, zero would be passed into theTransmitLimitedQueue
used for broadcasting ring updates. Thisessentially means that ring updates are only ever gossiped once.
Which issue(s) this PR fixes:
Fixes #4010 (unconfirmed)
Checklist
Documentation addedCHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]