Skip to content

pipeline_python_cross_module_call fails on macos-15-intel (previously masked by the venue-parity harness bug) #1886

Description

@DeusData

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

  1. 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.
  2. If it proves deterministic on x86_64 only, investigate the cross-module resolution path for an architecture-dependent ordering assumption.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    parsing/qualityGraph extraction bugs, false positives, missing edgeswindowsWindows-specific issues

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions