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

Fix HTTP/3 Client handling of MAX_FIELD_SECTION_SIZE setting #10759

Closed
lorban opened this issue Oct 19, 2023 · 1 comment · Fixed by #10763
Closed

Fix HTTP/3 Client handling of MAX_FIELD_SECTION_SIZE setting #10759

lorban opened this issue Oct 19, 2023 · 1 comment · Fixed by #10763
Assignees
Labels
Bug For general bugs on Jetty side flaky-test
Milestone

Comments

@lorban
Copy link
Contributor

lorban commented Oct 19, 2023

Jetty version(s)
10.0.x, 11.0.x, 12.0.x

Description
ClientServerTest.testRequestHeadersTooLarge() sometimes fail with:

org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
	at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
	at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
	at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:180)
	at org.eclipse.jetty.http3.tests.ClientServerTest.testRequestHeadersTooLarge(ClientServerTest.java:396)

See:

@lorban lorban added Bug For general bugs on Jetty side flaky-test labels Oct 19, 2023
@lorban lorban added this to the 12.0.x milestone Oct 19, 2023
@lorban lorban self-assigned this Oct 19, 2023
@lorban
Copy link
Contributor Author

lorban commented Oct 19, 2023

A first pass of investigation shows that the test fails when the headers are deemed not too large, which makes the request with the large header unexpectedly succeed.

Apparently, this seems to be caused by a race condition between the client parses the too-large header frame and the client receiving a settings frame in which the server tells the client to re-adjust its max headers size.

@lorban lorban moved this to 🏗 In progress in Jetty 12.0.3 - FROZEN Oct 19, 2023
lorban added a commit that referenced this issue Oct 20, 2023
…ue against H3 config setting maxRequestHeadersSize

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Jetty 12.0.3 - FROZEN Oct 20, 2023
lorban added a commit that referenced this issue Oct 20, 2023
…ue against H3 config setting maxRequestHeadersSize

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
@joakime joakime changed the title Test ClientServerTest.testRequestHeadersTooLarge() is flaky Fix HTTP/3 Client handling of MAX_FIELD_SECTION_SIZE setting Oct 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug For general bugs on Jetty side flaky-test
Projects
No open projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

1 participant