← board

Track A from the job NAME test-emit-obj, not from its source. This job names a MECHANISM rather than a subject — the source it was fed (test/c_obj_data_dup_a.c) is what the mechanism was run ON, not what is being tested, so a lane guessed from it would be wrong by construction. The ranker reads frontmatter, so this line decides who works it; re-lane it if this job has changed what it covers.

origin/master has advanced 7 commit(s) since this sha. Re-verify at current HEAD before acting — the callback is tagged to the sha that was tested, which may no longer be the state of the tree.

regression: test-emit-obj#src:test/c_obj_data_dup_a.c at 7b781ce15084 in step 25/261, for t in "" "--target=i386" "--target=riscv32 --platform=esp" "--target=xtensa --platform=esp"; do \ ./compiler/pascal2… (auto-filed by twatch)

Repro

tools/testmgr.py --tier full --job 'test-emit-obj#src:test/c_obj_data_dup_a.c' at 7b781ce150841c4c44a5bbc92a3983a28386db86

Range

bad 7b781ce15084, last good aef4ee1310f9, 33 commit(s) in range — the watcher narrows this by idle bisect; check tstate/TSTATE.md for the current range.

Log tail

ok: /tmp/testmgr-scratch-2812258/cods_dup_a.o  [code=18853B  data=1432B  bss=34640B  procs=514  codeseg=18853B]
ok: /tmp/testmgr-scratch-2812258/cods_dup_b.o  [code=18853B  data=1432B  bss=34640B  procs=514  codeseg=18853B]
test-emit-obj: duplicate definition is rejected, as gcc rejects it
test-emit-obj: the fn-pointer census fixture FAILED to build for [--target=i386]

Stub ticket: signal only. Track T agent (face 2) enriches or a dev track takes it from the repro line.

Log

2026-10-02 (frankuser): a second flake in the same job group, test-emit-obj#03

In two consecutive full tiers on plexus (nice -n 15, load ~24), #03 failed with an object it had just written already gone:

ok: /tmp/testmgr-scratch-1289354/cods_imp_x64.o  [code=19482B ...]
... five more ok: lines ...
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find /tmp/testmgr-scratch-1289354/cods_imp_x64.o
test-emit-obj: data-import object FAILED to link

Run alone (--job 'test-emit-obj#03'), it is green.

Eliminated, each by measurement or search, not reasoning:

FOUND, same day. It was neither a retry nor a second run. testmgr's split_jobs put #03's leading rm -f $(TESTTMP)/cods_*.o at the END of job #02, because a job starts at a compile line and the rm is not one. #02 runs concurrently with #03, so the rm deleted #03's fresh objects whenever the two overlapped, which at tier load they do. The shared-filename merge did not join them because a glob is not a filename. A scan of every target found one more case (espx_, #04 against #06). Both rm lines are removed.