-
Notifications
You must be signed in to change notification settings - Fork 531
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
Test Version deployment #2503
Comments
Also look into using |
I don't think this is going to be possible without some significant product code changes which makes it even more necessary to write tests. The basic assumption of the server-side version settings is that they are global, since, at the time I thought that we'd only ever have fleet customers with a single MsQuic server instance per machine, and that still seems to be the case. In order to write a single-machine test with the load balancer, I'd have to move the version settings down to the binding layer (so that stateless binding operations could still generate a VN packet), to enable different listeners in the same process to have different version settings. This would change the behavior of the version settings API too: setting it globally could still work (I think, because the settings are copied from global to config, and from config to listener/connection), but then it would also be possible to set on the config/listener and have it applied down to the binding layer Design notes:
Implementation details:
|
An alternative would be to write the test with separate processes: a load balancer running as a separate process with a RAW socket to hand traffic to the appropriate server processes. The server processes then sending traffic back to the load balancer. |
Describe the bug
Version negotiation supports a complicated set of steps to deploy changes to the supported versions list of a fleet of servers. MsQuic provides the means to accomplish this, but there's no testing on the process.
Add a test against two servers behind a load balancer, and have the client connect while a version deployment is in progress and ensure the connection succeeds.
Given the timing-sensitive nature of this test, it should run in a loop multiple times, with multiple clients connecting concurrently to ensure the best coverage.
Affected OS
Additional OS information
No response
MsQuic version
main
Steps taken to reproduce bug
Run tests.
Expected behavior
Test should exist for this scenario.
Actual outcome
No tests available for this scenario.
Additional details
No response
The text was updated successfully, but these errors were encountered: