Skip to content

Conversation

@Tratcher
Copy link
Member

@Tratcher Tratcher commented Sep 3, 2021

Fixes #35892
6.0-rc2 candidate.

HttpSys uses 4kb buffers to dequeue requests from the native queue. When a request is too large HttpReceiveHttpRequest returns ERROR_MORE_DATA with the real size, we allocate a new buffer and call HttpReceiveHttpRequest again with the specific request id.

Problem: The client can disconnect between the two calls to HttpReceiveHttpRequest. In that case the second call to HttpReceiveHttpRequest will return ERROR_CONNECTION_INVALID. This wasn't an expected error code so it bubbled up the stack and got logged at the Error level. The server tried again and remained healthy so the issue is only log noise.

This is a 6.0 candidate because unexpected Error level logs automatically trigger investigations for partner services.

There's no unit test for this because it's a very tight race condition and once it's handled there are no observable affects. See #35892 (comment) for the manual repro instructions.

@Tratcher Tratcher added this to the 7.0-preview1 milestone Sep 3, 2021
@Tratcher Tratcher self-assigned this Sep 3, 2021
@Tratcher Tratcher requested a review from halter73 as a code owner September 3, 2021 17:04
@Tratcher Tratcher enabled auto-merge (squash) September 3, 2021 17:10
@Tratcher
Copy link
Member Author

Tratcher commented Sep 3, 2021

/backport to release/6.0

@github-actions
Copy link
Contributor

github-actions bot commented Sep 3, 2021

Copy link
Contributor

@avparuch avparuch left a comment

Choose a reason for hiding this comment

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

Thank you!

@Tratcher Tratcher merged commit 6f67a89 into dotnet:main Sep 3, 2021
@Tratcher Tratcher deleted the tratcher/httpsys/dropped branch September 3, 2021 18:25
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HttpSysException : Failed to accept a request.

4 participants