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

Quarantine Http2StreamTests .ContentLength_Received_MultipleDataFramesOverSize_Reset #33373

Closed
TanayParikh opened this issue Jun 8, 2021 · 11 comments
Labels
area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions feature-kestrel test-failure test-fixed
Milestone

Comments

@TanayParikh
Copy link
Contributor

@Tratcher
Copy link
Member

Tratcher commented Jun 8, 2021

Please copy the test failure details and logs into this issue, the build results aren't saved very long.

@TanayParikh
Copy link
Contributor Author

Comments

{ "HelixJobId": "1a46d24e-1dfa-4684-9303-ab6c169d3661", "HelixWorkItemName": "InMemory.FunctionalTests--net6.0" }

Error message

Assert.NotNull() Failure

Stack trace
at

Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests.ContentLength_Received_MultipleDataFramesOverSize_Reset() in /_/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs:line 1049
--- End of stack trace from previous location ---

@Tratcher
Copy link
Member

Tratcher commented Jun 8, 2021

And the logs please 😁

@TanayParikh
Copy link
Contributor Author

TanayParikh commented Jun 8, 2021

I assume you're referring to the test log there, in that case:

[0.000s] [TestLifetime] [Information] Starting test ContentLength_Received_MultipleDataFramesOverSize_Reset at 2021-06-08T16:57:22
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" sending SETTINGS frame for stream ID 0 with length 18 and flags NONE.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" sending WINDOW_UPDATE frame for stream ID 0 with length 4 and flags 0x0.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" received SETTINGS frame for stream ID 0 with length 0 and flags NONE.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" sending SETTINGS frame for stream ID 0 with length 0 and flags ACK.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" received HEADERS frame for stream ID 1 with length 56 and flags END_HEADERS.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" received DATA frame for stream ID 1 with length 1 and flags NONE.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" received DATA frame for stream ID 1 with length 2 and flags NONE.
[0.002s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" received DATA frame for stream ID 1 with length 10 and flags NONE.
[0.003s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Debug] Connection id "TestConnectionId": HTTP/2 stream error.
Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2StreamErrorException: HTTP/2 stream ID 1 error (PROTOCOL_ERROR): More data received than specified in the Content-Length header.
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Stream.OnDataAsync(Http2Frame dataFrame, ReadOnlySequence`1& payload) in /_/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Stream.cs:line 439
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Connection.ProcessDataFrameAsync(ReadOnlySequence`1& payload) in /_/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs:line 528
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Connection.ProcessFrameAsync[TContext](IHttpApplication`1 application, ReadOnlySequence`1& payload) in /_/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs:line 475
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Connection.ProcessRequestsAsync[TContext](IHttpApplication`1 application) in Microsoft.AspNetCore.Server.Kestrel.Core.dll:token 0x6000cf8+0x0
[0.006s] [Microsoft.AspNetCore.Server.Kestrel] [Error] Connection id "TestConnectionId", Request id "TestConnectionId:00000001": An unhandled exception was thrown by the application.
Xunit.Sdk.ThrowsException: Assert.Throws() Failure
Expected: typeof(System.IO.IOException)
Actual:   typeof(System.Threading.Tasks.TaskCanceledException): A task was canceled.
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestPipeReader.<ValidateState>g__ThrowTaskCanceledException|14_1() in /_/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestPipeReader.cs:line 135
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestStream.ReadAsyncInternal(Memory`1 destination, CancellationToken cancellationToken) in /_/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestStream.cs:line 118
   at Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests.<>c__DisplayClass32_1.<<ContentLength_Received_MultipleDataFramesOverSize_Reset>b__1>d.MoveNext() in /_/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs:line 1035
--- End of stack trace from previous location ---
   at Xunit.Assert.RecordExceptionAsync(Func`1 testCode) in C:\Dev\xunit\xunit\src\xunit.assert\Asserts\Record.cs:line 81
[0.006s] [Microsoft.AspNetCore.Server.Kestrel] [Information] Connection id "TestConnectionId", Request id "TestConnectionId:00000001": the application completed without reading the entire request body.
[0.007s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" sending RST_STREAM frame for stream ID 1 with length 4 and flags 0x0.
[0.008s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Debug] Connection id "TestConnectionId" is closed. The last processed stream ID was 1.
[0.008s] [Microsoft.AspNetCore.Server.Kestrel.Http2] [Verbose] Connection id "TestConnectionId" sending GOAWAY frame for stream ID 0 with length 8 and flags 0x0.
[0.008s] [Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests] [Information] Waiting for Connection task
[0.008s] [Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests] [Information] Stopping Connection From ConnectionErrorAsync
[0.010s] [Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests] [Error] Test threw an exception.
Xunit.Sdk.NotNullException: Assert.NotNull() Failure
   at Xunit.Assert.NotNull(Object object) in C:\Dev\xunit\xunit\src\xunit.assert\Asserts\NullAsserts.cs:line 20
   at Microsoft.AspNetCore.Server.Kestrel.Core.Tests.Http2StreamTests.ContentLength_Received_MultipleDataFramesOverSize_Reset() in /_/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs:line 1049
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass48_1.<<InvokeTestMethodAsync>b__1>d.MoveNext() in C:\Dev\xunit\xunit\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 264
--- End of stack trace from previous location ---
   at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) in C:\Dev\xunit\xunit\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48
   at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) in C:\Dev\xunit\xunit\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90
[0.010s] [TestLifetime] [Information] Finished test ContentLength_Received_MultipleDataFramesOverSize_Reset in 0.0100116s

@ghost
Copy link

ghost commented Jun 9, 2021

Thanks for contacting us.

We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s).
If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.
To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@BrennanConroy
Copy link
Member

Related issue #17840 we believe

@halter73
Copy link
Member

halter73 commented Jun 9, 2021

I think we're observing _state change before _error causing the TaskCanceledException to be thrown instead of _error which would be the expected IOException.

@halter73
Copy link
Member

halter73 commented Jun 9, 2021

@BrennanConroy I think it's probably not related to this either now 😆

@ghost
Copy link

ghost commented Jul 14, 2021

Thanks for contacting us.

We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s).
If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.
To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@dougbu
Copy link
Member

dougbu commented Jul 20, 2021

This was fixed more than a month ago and has been running at 100% since. Will un-quarantine today.

dougbu added a commit that referenced this issue Jul 20, 2021
- un-quarantine `ContentLength_Received_MultipleDataFramesOverSize_Reset`, #33373 fix seems to have worked
- quarantine `LoggingConnectionMiddlewareCanBeAddedBeforeAndAfterHttps()`, #34561
- skip `LongPollingTransportOnReceiveGetsCalled()` because we can't quarantine Java tests, #34563
dougbu added a commit that referenced this issue Jul 21, 2021
- un-quarantine `ContentLength_Received_MultipleDataFramesOverSize_Reset`, #33373 fix seems to have worked
- quarantine `LoggingConnectionMiddlewareCanBeAddedBeforeAndAfterHttps()`, #34561
- skip `LongPollingTransportOnReceiveGetsCalled()` because we can't quarantine Java tests, #34563
@JunTaoLuo
Copy link
Contributor

This has been unquarantined.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 29, 2021
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions feature-kestrel test-failure test-fixed
Projects
None yet
Development

No branches or pull requests

7 participants