-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Flaky test ServletTest.testSimpleIdleRead() #11327
Labels
Comments
The test also erroneously send 11 bytes of data instead of 10, due to the extra |
sbordet
added a commit
that referenced
this issue
Sep 9, 2024
Just improving the test code. The flakyness was likely fixed by the work in #12216 and #12237. Signed-off-by: Simone Bordet <[email protected]>
sbordet
added a commit
that referenced
this issue
Sep 10, 2024
Just improving the test code. The flakyness was likely fixed by the work in #12216 and #12237. Signed-off-by: Simone Bordet <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Jetty version(s)
12+
Jetty Environment
ee10
Description
See #10945.
The problem is as follows:
The last request does not send the content, so the Servlet is blocked in a read.
The idle timeout fires, and runs the demand callback, which reads the failure, which wakes up the blocked by throwing, which is then caught and handled in
ServletChannel.handleException()
, resulting in asendError()
that succeeds.In the process above, however, we do not notify the underlying
HttpStream
that there was a failure.So in case of
HttpStreamOverHTTP1
, the underlyingEndPoint
remains fill interested (because the request was waiting for content that was never sent).When the
sendError()
completes successfully,HttpStreamOverHTTP1
is succeeded, where it checks if it was fill interested, finding that it was, and aborting with "read pending".The text was updated successfully, but these errors were encountered: