Skip to content
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] Fixed stress error System.Exception: Completed unexpectedly #72734

Merged

Conversation

ManickaP
Copy link
Member

Fixed stress error:

System.Exception: Completed unexpectedly
   at HttpStress.ClientOperations.<>c.<<get_Operations>b__1_4>d.MoveNext() in /home/manicka/repositories/runtime.2/src/libraries/System.Net.Http/tests/StressTests/HttpStress/ClientOperations.cs:line 290
--- End of stack trace from previous location ---
   at HttpStress.StressClient.<>c__DisplayClass17_0.<<StartCore>g__RunWorker|0>d.MoveNext() in /home/manicka/repositories/runtime.2/src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.cs:line 204

consistently happening for GET Aborted.

@ghost
Copy link

ghost commented Jul 24, 2022

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixed stress error:

System.Exception: Completed unexpectedly
   at HttpStress.ClientOperations.<>c.<<get_Operations>b__1_4>d.MoveNext() in /home/manicka/repositories/runtime.2/src/libraries/System.Net.Http/tests/StressTests/HttpStress/ClientOperations.cs:line 290
--- End of stack trace from previous location ---
   at HttpStress.StressClient.<>c__DisplayClass17_0.<<StartCore>g__RunWorker|0>d.MoveNext() in /home/manicka/repositories/runtime.2/src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.cs:line 204

consistently happening for GET Aborted.

Author: ManickaP
Assignees: -
Labels:

area-System.Net

Milestone: -

@ManickaP
Copy link
Member Author

/azp list

@ManickaP
Copy link
Member Author

/azp run runtime-libraries stress-http

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@@ -531,7 +531,6 @@ private unsafe int HandleEventPeerSendShutdown()
}
private unsafe int HandleEventPeerSendAborted(ref PEER_SEND_ABORTED data)
{
_receiveBuffers.SetFinal();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this should not be set? I look at the ReceiveBuffers but it is not quite clear to me what this does.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It successfully completes the buffer, propagation of FIN flag. You want to set it only in successful scenarios.

So what happened here is that we would set it here, ReadAsync would see this, i.e. that it's completed successfully and finish successfully the reading side of the stream, before the following exception could get propagated.

@ManickaP
Copy link
Member Author

Failures unrelated, stress ran successfully.

@ManickaP ManickaP merged commit b5fd812 into dotnet:main Jul 24, 2022
@ManickaP ManickaP deleted the mapichov/fix-stress-completed-unexpectedly branch July 24, 2022 18:07
@karelz karelz added this to the 7.0.0 milestone Aug 7, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Sep 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants