Repository navigation
fix: authenticate both ends of replication and time out stalled peers - #456
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The remaining replication items from the audit:
repl-timeout. The primary sendsMSG_PINGafter 10 s with nothing to send, and the replica answers, so a healthy idle connection stays open in both directionstake(len).read_to_end, so the buffer grows as bytes arrive instead of allocating the header's length, up to 4 GiB, before reading anythingTests:
The three timing durations are shorter under
cfg(test)so these run in real time. Paused tokio time gave false timeouts with real sockets.Throughput with a replica attached is unchanged: 1.25M SET/s at P=16, against 1.12M before, within noise.
Only the handshake is authenticated. Records after it carry no MAC and the stream isn't encrypted. The production checklist now says to keep replication traffic on a trusted network.