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

[UNDERTOW-2412 / 2445 / 2449 / 2446 / 2436 / 2422 / 2444 / 2448] Backport fixes to 2.2.x #1689

Merged
merged 11 commits into from
Oct 16, 2024

Conversation

schnapster and others added 11 commits October 11, 2024 06:11
…act and download-artifact actions to v4

Signed-off-by: Flavia Rainone <[email protected]>
…nd adding a response listener only after push resource has been handled by the listener

This will prevent the race condition where shutdown is processed by the server before all the other steps, which would prevent those steps from occurring

Signed-off-by: Flavia Rainone <[email protected]>
… when investigating PushResourceRSTTestCase

Signed-off-by: Flavia Rainone <[email protected]>
…nto the status line.

Add tests for this and the default behavior.

Signed-off-by: Flavia Rainone <[email protected]>
…ProxyProtocolReadListener, but make sure that we are discarding the bytes whenever we have concluded a reading or reached an error state, so it doesn't leak across multiple requests

Signed-off-by: Flavia Rainone <[email protected]>
…rror if buffer.remaining() == remaining after flush. We need to update remaining to do a proper check here.

The aforementioned == check can return true after a successfull flush, because "remaining" value is set to be the size of the bytes remaining in the buffer before encoding. If, at that stage, the buffer is empty, "remaining" value is set to buffer.capacity(). When encoding many bytes, we will end up with a full buffer. As a result, we will try to flush, and it is often the case that the buffer will be entirely cleared after flushing. This results in buffer.remaining() being the overall buffer size, i.e., buffer.capacity(). As a result, buffer.remaining() == remaining check returns true, and write is aborted, causing the broken responses we are seeing.

Signed-off-by: Flavia Rainone <[email protected]>
@fl4via fl4via added waiting CI check Ready to be merged but waiting for CI check backport The PR is the result of backporting another PR to a maintainance branch and removed waiting CI check Ready to be merged but waiting for CI check labels Oct 16, 2024
@fl4via fl4via merged commit 5749332 into undertow-io:2.2.x Oct 16, 2024
31 checks passed
@fl4via fl4via deleted the backport-fixes_2.2.x branch October 16, 2024 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport The PR is the result of backporting another PR to a maintainance branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants