awscrt: Add version 0.37.0 - #2278
Merged
Merged
Conversation
Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com>
Contributor
|
…sion (gotcha 402)
test_appexit.test_http failed only on 0.37.0's cp314-cp314t leg, at the ClientBootstrapDone stage, with the child subprocess exiting 1. The trace log shows the host resolver's own maintenance loop taking ~24 of the 30-second budget before the bootstrap/event-loop teardown that fires shutdown_event even starts - a margin problem on a shared riscv64 runner driving a free-threaded interpreter, not a hang: 0.36.3/0.36.4's cp314t legs passed in the same run, and test/appexit_http.py is byte-identical across all three versions, with no aws-c-io change between 0.36.4 and 0.37.0. Patch upstream's hardcoded TIMEOUT from 30s to 90s (gotcha 568) rather than skip the test, which is the one in the suite that proves the native extension exits cleanly.
luhenry
added a commit
that referenced
this pull request
Sep 24, 2026
A subprocess-exit self-test's own hardcoded wall-clock TIMEOUT can fail only on cp314t, only on one version, with no code change behind it - free-threading's extra per-object overhead tips an existing margin rather than creating a new bug (the awscrt 0.37.0 test_appexit case investigated on PR #2278).
…awscrt build_wheels timeout increase (360->740 min)
The 0.36.3 cp314-cp314t leg sat for 12h with no output after the wheel had built and been repaired, and GitHub's job timeout cancelled it. It hung in the test step, in test_aiohttp_client's test_stream_lives_until_complete_http, not in the CMake install. On an earlier run, 0.36.4 cp314t hung the same way in test_http_client's sync counterpart while 0.36.3 cp314t passed. The hang moves between versions, and test/ is identical across 0.36.3, 0.36.4 and 0.37.0. Both tests drop their stream/connection references and then call HTTPServer.shutdown(), which waits for the keep-alive socket to close. On a free-threaded build the stream's final DECREF on the native thread only queues it for the main thread to free, and the main thread may already be parked in shutdown(). Upstream's own x86_64 cp314t wheel from PyPI hangs 3/3 on a reproducer of that ordering, and cp314 does not. Patch both tests, for every pending version, to wait for the stream to be freed before stopping the server. With the patch, the four stream_lives_until_complete tests pass 25/25 on cp314 and cp314t.
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.
Automatically generated by the nightly
check_versions.pyrun.awscrt v0.36.2 -> v0.37.0
Every
- version:entry added todocs/packages/awscrt.yamlis built by this PR's ownbuild-awscrt.ymlrun; merging publishes the wheels.