Skip to content

gc_root_dominance_corpus.sh: 2 GC-rooting sources silently emit no IR (budget 0) on clean main #8810

Description

@proggeramlug

scripts/gc_root_dominance_corpus.sh reports 2 of 152 sources "failed to compile" against MAX_SKIPPED=0 on clean main (db821b5fd), so the corpus step exits non-zero:

corpus (shadow): 150/152 sources compiled, 2 skipped, 177 .ll files
  skipped: test_gap_gc_http2_pending_event_callback_rooting test_gap_gc_net_once_flags_rekey
::error::2 of 152 sources failed to compile (budget: 0).

Both sources compile fine standalone, so this is a corpus-harness discrepancy, not a compiler regression:

$ perry test-files/test_gap_gc_net_once_flags_rekey.ts -o /tmp/rk --trace llvm
...
Wrote executable: /tmp/rk
Binary size: 11.5MB
$ ls .perry-trace/llvm/test_gap_gc_net_once_flags_rekey_ts.ll   # IR was emitted

Not contention — it reproduces on an otherwise-idle host, and on both arms of an A/B (clean main and main + #8783 skip the same two).

Both are heavy linkers (they pull libperry_ext_net.a; the [strip-dedup] pass keeps rustls/tokio/webpki members), so a per-source timeout or an output-path assumption in the harness is the likely cause.

This matters beyond the two files: the script's own comment says a source that stops compiling "is NOT allowed to pass quietly … IR that was never emitted reads to the checker exactly like IR with no violations in it". Two GC-rooting gap tests silently contributing no IR is exactly the blind spot that warning describes — and they are the two whose names say they cover callback rooting.

Measured with a perry-dev binary; the script documents target/release/perry, so confirm at release profile.

Found while auditing #8783 (which is not the cause — same two skips on clean main).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions