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

Experiment/jetty 12.1.x/iterating callback complete #12055

Closed

Conversation

gregw
Copy link
Contributor

@gregw gregw commented Jul 16, 2024

This is an experimental version of #12040 where we do not rename all the usages of onCompleteFailure to onFailure. This means that all the usages of ICB will get new behaviour of onCompleteFailure being delayed until the callback is completed.
We tried this with #11876 and that resulted in whack-a-mole bug fixing... but there may have been other issues in that monster PR that cause that. We will see what fails here.

The previous semantic of `onCompleteFailure` has been renamed to `onFailure(Throwable)`, which is called immediately (but serialized) on either an abort or a failure.   A new `onCompleteFailure(Throwable)` method has been added that is called only after a `failed(throwable)` or a `abort(Throwable)` followed by `succeeded()` or `failed(Throwable)``

No usage has yet been made of the new `onCompleteFailure`, but the ICB implementation has been completely replaced by the one developed in #11876
The previous semantic of `onCompleteFailure` has been renamed to `onFailure(Throwable)`, which is called immediately (but serialized) on either an abort or a failure.   A new `onCompleteFailure(Throwable)` method has been added that is called only after a `failed(throwable)` or a `abort(Throwable)` followed by `succeeded()` or `failed(Throwable)``

No usage has yet been made of the new `onCompleteFailure`, but the ICB implementation has been completely replaced by the one developed in #11876
The previous semantic of `onCompleteFailure` has been renamed to `onFailure(Throwable)`, which is called immediately (but serialized) on either an abort or a failure.   A new `onCompleteFailure(Throwable)` method has been added that is called only after a `failed(throwable)` or a `abort(Throwable)` followed by `succeeded()` or `failed(Throwable)``

No usage has yet been made of the new `onCompleteFailure`, but the ICB implementation has been completely replaced by the one developed in #11876
@sbordet
Copy link
Contributor

sbordet commented Jul 19, 2024

Ok, so the reason of these failures is that all of them perform TCP congestion, and then fail due to timeouts or similar.

Obviously, if the write is TCP congested it won't complete, which means that the callback that is, for example, notifying that a client request has failed due to timeout is not completed, which causes the test failures.

So the new semantic is a breaking behavior for existing code.

Therefore, I am closing this PR in favor of #12040, but then I'll work immediately on another PR to fix the release calls where possible.

@sbordet sbordet closed this Jul 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants