-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Add support for SO_REUSEPORT to vtgate #19168
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
Conversation
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
|
📝 Documentation updates detected! New suggestion: Add changelog entry for VTGate |
|
📝 Documentation updates detected! New suggestion: Document vtgate --reuse-port flag for zero-downtime updates |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #19168 +/- ##
=======================================
Coverage 69.95% 69.95%
=======================================
Files 1610 1612 +2
Lines 216083 216112 +29
=======================================
+ Hits 151159 151190 +31
+ Misses 64924 64922 -2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
|
Is it normal for CI to fail? I merged the latest commits from main, and these 2 tests continue to fail. They don't appear related to my change, but I might be missing something. |
You will have to merge in main after this is merged shortly: #19198 |
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
timvaillancourt
left a comment
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.
LGTM, just pointed out one linter problem
|
@rjlaine I apologize for the delay! Can you please merge in origin/main? The new required tests should then run and pass and we can get this merged. ❤️ |
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Signed-off-by: Riley Laine <rlaine@slack-corp.com>
Description
Add an option to bind ports with SO_REUSEPORT on unix builds of vtgate. SO_REUSEPORT is a unix socket option which allows multiple processes running under the same UID to bind the same port at the same time. The kernel then load balances traffic between all processes listening on the port. This option can be utilized by users who want to update vtgates in place without service interruption, or to hot-reload configuration.
Related Issue(s)
Deployment Notes
No-op unless the new flag is set. The new flag can be used with existing config, without additional configuration changes. However, for users that want to utilize it for hot reload config, additional changes will be required in their specific runtime environment. For a very minimal example, to run hot reloading in a systemd service template, you might set up something like this:
/etc/systemd/system/vtgate@.serviceAnd then toggle between the two to hot reload: