Skip to content

Handle missing HTTP3 error cases#101923

Merged
rzikm merged 7 commits into
dotnet:mainfrom
rzikm:89097-HttpRequestError-Handle-HTTP3-cases-better-if-needed
May 21, 2024
Merged

Handle missing HTTP3 error cases#101923
rzikm merged 7 commits into
dotnet:mainfrom
rzikm:89097-HttpRequestError-Handle-HTTP3-cases-better-if-needed

Conversation

@rzikm

@rzikm rzikm commented May 6, 2024

Copy link
Copy Markdown
Member

Closes #89097.
Fixes #102202.

@ghost ghost added the area-System.Net.Http label May 6, 2024
@rzikm rzikm added the NO-REVIEW Experimental/testing PR, do NOT review it label May 6, 2024
@rzikm

rzikm commented May 6, 2024

Copy link
Copy Markdown
Member Author

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ManickaP

Copy link
Copy Markdown
Member

#102202 might be related.

@rzikm

rzikm commented May 15, 2024

Copy link
Copy Markdown
Member Author

#102202 might be related.

I would prefer to handle this one separately, it does not look trivial and the callstack for that one is very weird

client-1  | --- End of stack trace from previous location ---
client-1  |    at System.Net.Quic.ResettableValueTaskSource.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Internal/ResettableValueTaskSource.cs:line 251
client-1  |    at System.Net.Http.Http3RequestStream.ReadFrameEnvelopeAsync(CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs:line 803
client-1  |    at System.Net.Quic.QuicStream.WriteAsync(ReadOnlyMemory`1 buffer, Boolean completeWrites, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicStream.cs:line 431
client-1  |    at System.Net.Http.Http3RequestStream.ReadResponseContentAsync(HttpResponseMessage response, Memory`1 buffer, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs:line 1175
client-1  |    at System.Net.Http.Http3RequestStream.WriteRequestContentAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs:line 482
client-1  |    at HttpStress.ClientOperations.ByteAtATimeNoLengthContent.SerializeToStreamAsync(Stream stream, TransportContext context) in C:\app\ClientOperations.cs:line 615
client-1  |    at System.Net.Http.HttpContent.<CopyToAsync>g__WaitAsync|56_0(ValueTask copyTask) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpContent.cs:line 399

It mixes read and write path together.

@rzikm rzikm removed the NO-REVIEW Experimental/testing PR, do NOT review it label May 15, 2024
@rzikm rzikm requested a review from a team May 15, 2024 15:51
@rzikm

rzikm commented May 15, 2024

Copy link
Copy Markdown
Member Author

/azp list

@azure-pipelines

Copy link
Copy Markdown
CI/CD Pipelines for this repository:

@rzikm

rzikm commented May 15, 2024

Copy link
Copy Markdown
Member Author

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rzikm

rzikm commented May 15, 2024

Copy link
Copy Markdown
Member Author

Nevermind, spoke too soon, the other callstack in #102202 is much clearer. and the console log from the run shows that we closed the connection from our side, which explains why we would get the OperationAborted error.

@rzikm

rzikm commented May 15, 2024

Copy link
Copy Markdown
Member Author

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rzikm

rzikm commented May 20, 2024

Copy link
Copy Markdown
Member Author

@dotnet/ncl can I get review on this?

@MihaZupan MihaZupan added this to the 9.0.0 milestone May 21, 2024
@rzikm rzikm merged commit cb9b9f7 into dotnet:main May 21, 2024
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
* Check for HttpRequestError.HttpProtocolError when expecting HTTP3 protocol errors in test

* WIP

* Fix data race in ServerClosesOutboundControlStream_ClientClosesConnection

* Handle more exceptions explicitly in Http3RequestStream

* WIP

* Remove debug guard

* Fix  dotnet#102202
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

3 participants