Sync internal 2026-05-15#879
Merged
drcaramelsyrup merged 12 commits intoMay 15, 2026
Merged
Conversation
…FC 9111 compliance)
The test connects to 240.0.0.1 (reserved) while bound to localhost and asserts the error is ConnectError or ConnectTimedout. On macOS and some CI runners the kernel returns ENETUNREACH immediately, which maps to ConnectNoRoute. Accept that as a valid outcome. This is the same class of fix applied to test_conn_timeout and test_tls_connect_timeout_supersedes_total in 542129f.
The old loop used `tokio::select!` with a `poll_closed` path that bailed as soon as the shutdown signal fired. RFC 9113 §6.8 says we have to process streams below the final last_stream_id. We weren't doing that. Now we call `graceful_shutdown` on the connection, but streams that were already in the buffer or have a lower stream number get surfaced and dispatched normally. The loop exits once the codec flushes the closing GOAWAY. This also pulls the accept loop out of `apps/mod.rs` so that it's more easily testable and usable from a test environment.
This is a trivially simple way to drive toward uniform weights between LRU shards if they are unbalanced.
This option is then passed to daemonize as the child process immediately runs chdir.
## Problem `test_upload_connection_die` fails reliably in CI on both arm64 and x86. The test sends a 15MB upload to an nginx origin that immediately responds with 200, then kills the connection after 1s. Under CI load, the 15MB upload takes longer than 1s. When nginx sends the TCP RST, it discards the buffered 200 response (per TCP protocol semantics). The proxy sees an upstream error and resets the client connection, causing the test to fail with `ConnectionReset`. This is not a test bug — the proxy does not reliably forward early responses while still writing the request body upstream. The `select!` loop in `proxy_handle_upstream` is blocked on `send_body_to1` and cannot read the response concurrently. ## Fix Mark the test as `#[ignore]` with a detailed comment explaining the root cause.
Implement the same proxy task API functionality for subrequest server sessions as HTTP/1. Also fix the regular subrequest header write path so upgrade state is only marked after the 101 task is sent.
Creates ListenerConfig to hold this new config and allow for future extensibility.
johnhurt
approved these changes
May 15, 2026
gumpt
approved these changes
May 15, 2026
Noah-Kennedy
approved these changes
May 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.