Uh oh!
There was an error while loading. Please reload this page.
Upgrade grpc-swift-nio-transport to 2.9.0 and remove HTTP2ConnectBuff… - #1790
Conversation
@adityabagchi24 Thanks for jumping on this so quickly! It looks okay but we can't build yet. Could you try running Also, it'd be awesome if you could apply the same fix to Vminit.swift in the containerization repo: apple/containerization#776. |
@jglogan I have run |
adityabagchi24
commented
Jun 25, 2026
@jglogan The formatting issue is fixed now — there was a minor disagreement between two different formatting tools about a blank line at the end of the file. Both are now aligned, so the next run should pass. |
Code Coverage
|
jglogan
commented
Jun 25, 2026
@adityabagchi24 Building clean now. I'm going to hold off merging this and the sister change down in containerization until after the 1.1.0 release. That this builds is very good evidence that the fix in the grpc transport library 2.9.0 is valid, but waiting for the next release will allow us to do more regression testing. Thank you again for taking care of this. |
adityabagchi24
commented
Jun 26, 2026
@jglogan Thank you for the update! That sounds like a good plan. I'm glad this provides useful validation for the fix in grpc transport library 2.9.0. I completely understand waiting until after the 1.1.0 release to allow for additional regression testing. |
jglogan
commented
Jul 7, 2026
@adityabagchi24 Merged, thank you! I've tagged containerization and will update the dependency to pull in your library fix. |
Uh oh!
There was an error while loading. Please reload this page.
adityabagchi24
commented
Jul 7, 2026
@jglogan Thank you so much for your cooperation and patience throughout the process of merging my PR. I truly appreciate your support. Please feel free to reach out if there's ever anything I can assist you with in the future. |
apple#1790) - Fixesapple#1789. - Release 2.9.0 of `grpc-swift-nio-transport` fixes an HTTP/2 initialization race where the server could send SETTINGS before gRPC handlers are added to the pipeline, causing the client to hang. The new `WrappedChannel.wrapping(config:serviceConfig:makeChannel:)` API calls `configure(channel)` inside the channel initializer, ensuring the pipeline is set up before any inbound bytes arrive. This eliminates the need for the custom `HTTP2ConnectBufferingHandler` workaround.
…ot args (#14) apple/container **1.2.0** is out (previously tracked: `1.1.0`). Upstream notes: https://github.com/apple/container/releases/tag/1.2.0 — mirrored in `docs/upstream/apple-container-1.2.0.md`. ## Review checklist - [ ] New or changed CLI flags Gantry should surface (`container run/create/machine/build`) - [ ] Changed `--format json` shapes the DockerKit apple transport decodes - [ ] Fixed upstream bugs Gantry currently works around - [ ] `ContainerTooling.recommendedVersion` / feature gates need moving to `1.2.0` - [ ] MCP tools and App Intents that expose the affected commands - [ ] README and CHANGELOG entries for whatever is adopted Merging records the version as reviewed. Implement the adopted parts on this branch, or merge as-is and open follow-ups. --- <details><summary>Upstream release notes</summary> ## What's Changed * Add TestCLISystemLogs and TestCLITermIO integration tests in new integration test suite by @katiewasnothere in apple/container#1879 * Restore reverted migrations, migrate last tests. by @jglogan in apple/container#1880 * Removes obsolete CLITests directory. by @jglogan in apple/container#1886 * Integration coverage xpc helpers by @noah-thor in apple/container#1551 * Upgrade grpc-swift-nio-transport to 2.9.0 and remove HTTP2ConnectBuff… by @adityabagchi24 in apple/container#1790 * Updates containerization to 0.36.0. by @jglogan in apple/container#1912 * Use containerization version 0.37.0 by @adityaramani in apple/container#1932 * Verify kernel archive integrity by @haoruilee in apple/container#1703 * Add commit/issue alert to PR template. by @jglogan in apple/container#1945 * Remove `--skip-build` from test Makefile target. by @jglogan in apple/container#1951 * Restore `--skip-build`, enable `import testable` for release builds. by @jglogan in apple/container#1955 * [package]: bump container-builder-shim to 0.13.0 by @saehejkang in apple/container#1953 * Validate container ID from XPC requests by @katiewasnothere in apple/container#1956 * Remove force unwraps on XPC error set/get by @katiewasnothere in apple/container#1958 * Do not follow destination symlink when copying user configuration by @katiewasnothere in apple/container#1957 * Fix machine ID length test. by @jglogan in apple/container#1971 * Address flaky TestCLIKernelSetSerial suite. by @jglogan in apple/container#1976 * [gitignore]: ignore vscode workspace files by @saehejkang in apple/container#1966 * Update containerization dependency with new EXT4Unpacker func definition by @katiewasnothere in apple/container#1973 * Periodic dependency updates. by @jglogan in apple/container#1981 * Use ordered journal mode for unpacked images. by @jglogan in apple/container#1974 * Reword DNS container name resolution doc information by @katiewasnothere in apple/container#1960 * ci: bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in apple/container#1983 * Pass build config in when building protoc dependencies by @katiewasnothere in apple/container#1972 * Container test fixture package by @katiewasnothere in apple/container#1887 * Downgrade swift-collections to 1.5.1. by @jglogan in apple/container#1984 * Use `enum` for warmup images. by @jglogan in apple/container#1990 * Add missing dependencies to new ContainerTestSupport package by @katiewasnothere in apple/container#1994 * Add OCI maskedPaths and readonlyPaths support to Container API. by @jglogan in apple/container#1996 * Integration test - miscellaneous fixture and test refinements. by @jglogan in apple/container#1993 * Use log instead of print for system start status messages by @adityabagchi24 in apple/container#1889 * Fix BuilderStart race, parallelize `container build` tests. by @jglogan in apple/container#2002 * Allow custom kernel boot args via --kernel-arg by @arirubinstein in apple/container#1744 * fix: Increase XPC timeout for Machine API operations by @dev-kvt in apple/container#2006 * Update containerization import to latest 0.40.0 by @katiewasnothere in apple/container#2028 * Fix image env vars, build context checks, TCP/UDP port forward buffer, and validate plugin name by @katiewasnothere in apple/container#2027 * Update containerization import to 0.40.1 by @katiewasnothere in apple/container#2038 ## New Contributors * @haoruilee made their first contribution in apple/container#1703 * @arirubinstein made their first contribution in apple/container#1744 * @dev-kvt made their first contribution in apple/container#2006 **Full Changelog**: apple/container@1.1.0...1.2.0 </details> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Andrew <Andrew.Komkov@gmail.com>
apple#1790) - Fixesapple#1789. - Release 2.9.0 of `grpc-swift-nio-transport` fixes an HTTP/2 initialization race where the server could send SETTINGS before gRPC handlers are added to the pipeline, causing the client to hang. The new `WrappedChannel.wrapping(config:serviceConfig:makeChannel:)` API calls `configure(channel)` inside the channel initializer, ensuring the pipeline is set up before any inbound bytes arrive. This eliminates the need for the custom `HTTP2ConnectBufferingHandler` workaround.
Type of Change
Motivation and Context
Release 2.9.0 of
grpc-swift-nio-transportfixes an HTTP/2 initialization race where the server could send SETTINGS before gRPC handlers are added to the pipeline, causing the client to hang. The newWrappedChannel.wrapping(config:serviceConfig:makeChannel:)API callsconfigure(channel)inside the channel initializer, ensuring the pipeline is set up before any inbound bytes arrive. This eliminates the need for the customHTTP2ConnectBufferingHandlerworkaround.Fixes#1789.
Changes
grpc-swift-nio-transportdependency from2.4.4to2.9.0inPackage.swiftPackage.resolvedto pin2.9.0(revision2ca31f0)ClientBootstrap+HTTP2ConnectBufferingHandlerpipeline setup with the new asyncHTTP2ClientTransport.WrappedChannel.wrapping(config:serviceConfig:makeChannel:)API viawithCheckedThrowingContinuationHTTP2ConnectBufferingHandlerclass and unused imports (NIOCore,NIOHPACK,NIOHTTP2)Builder.init(socket:group:logger:)async throwsto support the new async APIBuildCommand.swiftto usetry await Builder(...)Testing
ContainerBuildandContainerCommandstargets build cleanlyChecklist