-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[HTTP/3] Test failure System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_Cancellation_Test_Http3_Mock.ConnectTimeout_TimesOutSSLAuth_Throws #54806
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsRun: runtime-libraries-coreclr outerloop 20210627.4 Failed test:
Error message:
|
The port is really strange |
Failures 4/28-6/27 (incl. PRs):
We need to disable the tests ASAP. |
@ManickaP @wfurt @geoffkizer any thoughts how to disable the test just for HTTP/3? |
is everything on ARM @karelz ? |
Nope, arm, amd64, all OS versions - Windows, Linux, OSX |
The port "1" in the exception looks suspicious. Are we really using TCPMUX? Or is this some magic in our test environment and it should "just work" tm? |
Even more, this is |
typically the server would bind on anonymous port (e.g. 0) and then OS would assign some real unused port. Then we would tell client where to connect to. I'm not sure what exactly we do for mock. |
Nothing, we don't do any networking, we use in-memory buffers to exchange data between client and server. |
This might be the problem: runtime/src/libraries/System.Net.Http/tests/FunctionalTests/SocketsHttpHandlerTest.Cancellation.cs Line 35 in cef40a1
It basically walks around the whole handler set up we do for testing clients: Lines 38 to 57 in cef40a1
This should be quick, I'll put up a PR. If it helps, great, if not, I'll disable the test. |
We have to create a fake IPEndPoint for Mock. That's where the :1 is coming from. The problem is, we seem to have a mismatch in this test where we are using Mock on the loopback server but MsQuic on the client. So we end up actually trying to connect to the fake endpoint. The reason for the mismatch is what @ManickaP pointed out above -- we are constructing the SocketsHttpHandler directly instead of using CreateHttpClientHandler. As a result it doesn't get configured to use Mock. Interestingly, this test seems to run fine on Windows. I guess the difference here is that Linux is actively denying an attempt to connect to 127.0.0.1:1 whereas Windows is not. |
This is a weird test because it's intentionally not completing the connection -- specifically, it's written so that the connection should be accepted but the SSL establishment shouldn't happen. This doesn't really make sense for HTTP3. I think we should just disable this test for HTTP3, like we do the one just below. |
Run: runtime-libraries-coreclr outerloop 20210627.4
Failed test:
Error message:
The text was updated successfully, but these errors were encountered: