ci: check out test sources at the commit the wheels were built from - #2974
Merged
Merged
Conversation
Nightly runs reuse wheels from the latest successful CI run on main, but the test job checked out the workflow's own commit. When main moved on after that run, new tests ran against old wheels: the aarch64 cuda.bindings job saw a cascade of failures and then a segfault in test_ffi_coverage_jit_wall_time_pointer_is_valid, where the old wheel returns a NULL cptr that the test dereferences through ctypes. Check out `inputs.sha || github.sha` in the Linux and Windows test workflows so sources match the wheels under test, and assert cptr is non-NULL in that test so a regression fails instead of crashing. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
|
leofang
approved these changes
Sep 30, 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.
Problem
The nightly "standard (linux-aarch64)" cuda.bindings jobs crashed with exit code 139 (run 36513361710). The log shows:
cuda_bindings-13.4.2.dev254+g1db44ecd7, built by the latest successful main CI run at lookup time (9/22).tests/from a checkout of main HEAD, which already had the tests from Fix CUDA pointer and coredump attribute types #2929 and fix(bindings): cover missing helper attrs and fix CU_JIT_WALL_TIME pointer #2931.test_ffi_coverage_*tests failed against the old wheel, thentest_ffi_coverage_jit_wall_time_pointer_is_validsegfaulted: the old wheel value-casts0.0forCU_JIT_WALL_TIME, sohelper.cptris NULL and the test dereferences it viactypes.c_float.from_address.Push runs build wheels from the same commit as the tests, which is why they pass. Only nightlies reuse wheels from an older commit.
Changes
test-wheel-linux.yml/test-wheel-windows.yml: the test-job checkout now usesref: ${{ inputs.sha || github.sha }}, so test sources match the wheels under test. With noshainput (PR/push) behavior is unchanged.test_cuda.py: asserthelper.cptr != 0before thectypeswrite, so a regression fails instead of crashing the interpreter.Verification
Not run. The next nightly should show the aarch64 cuda.bindings jobs passing, or at least not crashing. Main CI run 36680216954 (8845a79, today) means the next nightly will also pick up fresher wheels.
🤖 Generated with Claude Code