-
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
Make idle timeouts transient #10234
Comments
After work on #10233, it became apparent that AsyncContentProducer is not able to handle transient timeouts, as the error chunk is consumed in an isReady call and then null returned on the following read. This implementation needs to be modified to ensure error chunks are delivered to application before being released. |
It may be that writes cannot have transient timeouts, as it will be unclear how much data, if any, was written. Perhaps it is not worth doing transient timeouts for just reads? In which case this issue is to remove all the TODOs added in #10233 |
@lorban I think we should move this to 12.0.2 |
@gregw ack |
Fixes #10234 * Introduced transient failures in reads where a failure chunk has last=false. * Transient failure now do not fail the handler callback. * Improve eeN ContentProducer to more carefully assert transient and terminal errors + enable HttpInputIntegrationTest * Do not add connection: close to the response when the error is transient * Rework ChunksContentSource to support null chunks * Added tests to verify the new transient failure cases * Review all code that handles failure, and handling correctly transient failure, either by making them fatal, and/or by failing Content.Source. Signed-off-by: Ludovic Orban <[email protected]> Signed-off-by: Olivier Lamy <[email protected]> Signed-off-by: Simone Bordet <[email protected]> Co-authored-by: Ludovic Orban <[email protected]> Co-authored-by: Olivier Lamy <[email protected]> Co-authored-by: Joakim Erdfelt <[email protected]> Co-authored-by: Chad Wilson <[email protected]> Co-authored-by: Simone Bordet <[email protected]>
Jetty version(s)
12
Enhancement Description
Idle timeouts delivered via read() should be transient, i.e. another read can be attempted after the timeout of the read chunk is not last
The text was updated successfully, but these errors were encountered: