pipeline_python_cross_module_call (tests/test_pipeline.c:6114, assertion at :6154, ASSERT(found)) fails on the macos-15-intel CI leg while passing everywhere else. Filing it for proper attribution rather than leaving it as an ambient red.
Why it only just became visible
It was masked. The macos-15-intel job used to die at Step 0j on a harness defect in tests/test_venue_parity_contract.sh — a printf | grep -q under set -o pipefail, where grep -q exits on match and the writer takes EPIPE, so a satisfied contract reported as violated (fixed in #1879). The job never reached the test phase, so this failure could not be seen.
With that fixed, the same job now runs ~25 minutes further and reports:
pipeline rc=1 pass=254 fail=1 skip=0 secs=48
FAIL tests/test_pipeline.c:6154: ASSERT(found)
pipeline_cross_language_same_name_does_not_share_calls_issue725
Evidence so far
| what |
result |
build/c/test-runner pipeline on macOS arm64, clean main 31b611a3 |
250 passed, 0 failed — the test runs and passes |
macos-15-intel (x86_64) in CI |
ASSERT(found) fails |
| Other legs (ubuntu-latest, ubuntu-24.04-arm, macos-14, windows) |
no failure of this test observed |
Attribution reasoning (not yet concluded)
The harness bug that masked this was intermittent, so macos-15-intel did sometimes get past Step 0j and run the suite. If this test failed deterministically on that leg it should have surfaced long before now. That points at an intermittent failure rather than a straightforward x86_64-vs-arm64 behavioural difference — but that is an inference, not a measurement.
ASSERT(found) on a cross-module CALLS edge is also consistent with the known nondeterministic-resolution-order class (parallel per-file registry work, hash iteration order) rather than a logic error, which would be expected to fail on every platform.
What is queued
A rerun of the failed job on the same SHA, purely as flake measurement — to establish whether the verdict is deterministic on that leg. Per the repo's O9 doctrine a rerun is measurement, never a fix, and a probabilistic pass is not a fixed test.
Next steps
- Measure: rerun on the same SHA; if it flips, it is nondeterministic and needs a deterministic rebuild (a seam or a held gate), not a budget or cadence tune.
- If it proves deterministic on x86_64 only, investigate the cross-module resolution path for an architecture-dependent ordering assumption.
- Either way this needs an at-the-case whitelist entry (WHY + what-was-tried) if it is going to be tolerated red for any length of time — an unexplained red is a board defect, not data.
This is not caused by #1879. That change touches exactly one shell script and cannot affect Python cross-module CALLS resolution; it only stopped hiding this.
pipeline_python_cross_module_call(tests/test_pipeline.c:6114, assertion at:6154,ASSERT(found)) fails on themacos-15-intelCI leg while passing everywhere else. Filing it for proper attribution rather than leaving it as an ambient red.Why it only just became visible
It was masked. The
macos-15-inteljob used to die at Step 0j on a harness defect intests/test_venue_parity_contract.sh— aprintf | grep -qunderset -o pipefail, wheregrep -qexits on match and the writer takesEPIPE, so a satisfied contract reported as violated (fixed in #1879). The job never reached the test phase, so this failure could not be seen.With that fixed, the same job now runs ~25 minutes further and reports:
Evidence so far
build/c/test-runner pipelineon macOS arm64, clean main31b611a3macos-15-intel(x86_64) in CIASSERT(found)failsAttribution reasoning (not yet concluded)
The harness bug that masked this was intermittent, so
macos-15-inteldid sometimes get past Step 0j and run the suite. If this test failed deterministically on that leg it should have surfaced long before now. That points at an intermittent failure rather than a straightforward x86_64-vs-arm64 behavioural difference — but that is an inference, not a measurement.ASSERT(found)on a cross-module CALLS edge is also consistent with the known nondeterministic-resolution-order class (parallel per-file registry work, hash iteration order) rather than a logic error, which would be expected to fail on every platform.What is queued
A rerun of the failed job on the same SHA, purely as flake measurement — to establish whether the verdict is deterministic on that leg. Per the repo's O9 doctrine a rerun is measurement, never a fix, and a probabilistic pass is not a fixed test.
Next steps
This is not caused by #1879. That change touches exactly one shell script and cannot affect Python cross-module CALLS resolution; it only stopped hiding this.