Repository navigation
main full-tier suite red: all 12 parity shards, 8/8 cargo-test-perry shards, doc-tests — full-suite-gate blocks releases #11560
Copy link
Copy link
Open
Description
Activity
Triage notes so far (hello-world-perf):
test_inherited_store_chain_trapsis a test bug. The repo's package.json is"type": "module", so the file runs as strict ESM, and both node and perry correctly throw. The fix is test: the chain-store traps run as an ES module, so refused stores throw #11561, a test-only change.test_parity_lodash,test_lodash_max_min,test_jose_*andtest_jwt_*fail because node itself crashes innode:internal/modules/package_json_reader:301on the runner and can't load those packages. That points at the runner's npm install or package inventory. A suspect is 5289d6e ("re-derive inventories after the mongodb binding removal"), which touched package.json. Not yet verified.test_issue_449_new_targetis a real perry bug and reproduces on main:new.target?.name ?? "undefined"in a plain (non-new) call throws instead of short-circuiting. hello-world-perf is fixing it. Possibly related: 071643e (super() to a runtime-value parent (ns.Base, local alias) runs the parent with new.target undefined #11147).- An agent is triaging the compile-TIMEOUT and perry/ui compile-error buckets.
- added 6 commits that reference this issue
on Sep 27, 2026 Triage of the two biggest buckets (run 36310190277)
(a) "compile TIMEOUT after 300s" is the harness budget, not the compiler (verified). PR #11563
- Where the time goes. All 42 timeouts in the 09-27 run were killed at exactly 300 s. In every one, codegen finished in 0.0 min, and the log (
parity-compile-errors-Linux-shard-*) ends onauto-optimize: rebuilding runtime+stdlib (...). So the time is the per-feature-set runtime+stdlibcargo buildintotarget/perry-auto-<hash>, which takes about 200 to 330 s on hosted runners. It isn't codegen and it isn't linking. - Why it's killed.
run_parity_tests.shgives the 900 s toolchain budget only to ext-routed fixtures:(auto_optimize_on || force_no_auto) && ext_routed. The full tier runs the whole corpus with auto-optimize on, so plain fixtures also rebuild, but they only get 300 s. None of the 42 is ext-routed. - Size. 36 of the run's 47 NEW (non-allowlisted) parity failures.
- First bad: c78f1a8 (Compiling ethers from source never finishes: HIR lowering of @noble/curves' weierstrass.js spins indefinitely on one core #10757, 09-20), which added the 300 s compile bound. d951f3f later raised it to 900 s, but only for ext-routed and wasm fixtures.
- Fix (fix(test): an auto-optimize compile gets the toolchain budget, ext wrapper or not #11563). The toolchain budget is now keyed on
auto_optimize_on. The fast tiers don't change:PERRY_SKIP_BUILD=1implies no-auto, so plain compiles there keep the 300 s bound.- Regression test
tests/test_parity_compile_budget.sh, wired into lint. It fails on the old predicate and passes on the new one, on macOS and Linux. - The PR also raises the parity shard cap from 210 to 300 min. Shard 3's job already took 3h24m of the 210.
- Not validated on the full tier yet. The killed fixtures have never run to completion, so some may turn out to be real failures.
- Regression test
(b) perry/ui "compile error" is almost all pre-existing and allowlisted (verified). PR #11564
- Every one of them fails with
perry/ui imported but libperry_ui_gtk4.a not found. The Linux parity job builds no perry-ui-gtk4 archive. - The whole family has been allowlisted as
ci-envfor linux since parity: 2026-08-17 dark-debt audit — 93 parity + 27 compile failures unlisted after six dark weeks (90.7% aggregate) #8271 (2026-08-17), so the ratchet does not count them. - Only
test_issue_10155_textfield_singlelineis a NEW failure. It was added on 09-13 (8f9b407) without an allowlist entry and has been NEW in every full run since. test-parity: allowlist test_issue_10155 (gtk4 family) and delete five stale linux entries #11564 adds the entry. - test-parity: allowlist test_issue_10155 (gtk4 family) and delete five stale linux entries #11564 also deletes five linux entries that the full tier shows are stale:
test_guarded_raw_numeric_arrays,test_issue_3558_computed_accessors,test_node_http2_basic,test_node_https_basic: PASS in all six full runs, 09-22 to 09-27.test_issue_3199_3200_tls_server_tlssocket: passing since 09-26.
- The ratchet fails a shard when an allowlisted test passes, and those five alone keep shards 11 and 12 red. Checked against the 09-27 shard reports: 11 and 12 pass with this file.
Other buckets (not fixed here)
- http2 wire, perry/tui, lodash / jose / jwt: all are allowlisted known failures, so they don't cause the red. lodash/jose fail because Node exits ERR_MODULE_NOT_FOUND: those packages are absent from package.json (parity: 2026-08-17 dark-debt audit — 93 parity + 27 compile failures unlisted after six dark weeks (90.7% aggregate) #8271 entries, 08-17). This isn't a new package-tree break.
- Remaining NEW non-timeout parity failures (09-27):
- test_dynamic_import_data_10104
- test_gap_node_module_3118plus
- test_http_100_continue_5080 (CRASH)
- test_inherited_store_chain_traps (test: the chain-store traps run as an ES module, so refused stores throw #11561)
- test_issue_10890_parent_class_object_reads
- test_issue_2671_…_process_cohort
- test_issue_336_class_keys_collision
- test_issue_4971_tls_connect_options
- test_issue_5912_url_new_local_shadow
- test_turnloop_p6_smtp
- doc-tests (suspected, not verified): these are not timeouts.
npm_packages.ts,fastify_json.tsandutilities/snippets.tsfail at link withUndefined symbols: _fastify/_nanoid/_uuidv4, afterWarning: Could not resolve import 'fastify' | 'uuid' | 'nanoid'. That lines up with the native-binding removals (fastify dcb8a76, nanoid 7b47239, uuid refactor(stdlib): remove uuid native binding #10701): the doc-test compile can't resolve the real packages. The 400 s wall time is the auto-optimize rebuild plus the bcrypt ext build before the link fails. - cargo-test-perry failures: not investigated.
- Where the time goes. All 42 timeouts in the 09-27 run were killed at exactly 300 s. In every one, codegen finished in 0.0 min, and the log (
- added 7 commits that reference this issue
on Sep 27, 2026 34 remaining items
- added 10 commits that reference this issue
on Sep 27, 2026 Round 4
item result #11579 class expr re-evaluation (test_issue_10890) PR #11587. The guarded class environment from c3c5872 resolves a receiver's evaluation from a brand that only a static newof the class expression itself stamps. Every other instance was treated as belonging to the first evaluation, so instances of a declared subclass (class B extends make("second")) read the first evaluation's captures. The fix falls back to the instance class's heritage walk, the same walk inherited statics already use. The fixture now matches node byte for byte. New test fails without the fix.#11585 function URLvsglobalThis.URL(test_issue_5912)PR #11592. Bisected on real builds to a9c6b02 (URL components moved onto URL.prototype).create_url_objectlooked the prototype up through the current global binding. It now uses a recorded %URL.prototype%. New test fails without the fix. The pre-existing exposure of module functions onglobalThisis split out as #11591.#11586 server.close()kills a mid-request socket (test_issue_4971)PR #11596. Confirmed as a turnloop regression (b77aba6): turnloop's is_busydropped tokio'sread_activecase, so bytes of an unfinished request head no longer counted as busy. New gap testtest_gap_11586_close_keeps_half_receivedfails without the fix. The 39 http/net/https/tls/http2 gap tests give byte-identical output to main.#11583 timer handle vs init resource PR #11600. initreceived a pointer-tagged raw timer id while the call returned a separately minted handle. The handle is now built first and passed as the resource. New test fails without the fix (false false). All 186 async_hooks node-suite fixtures are unchanged where they differ from node.test_http_100_continue_5080 PR #11602. Also turnloop: 100 Continuewas sent only after the request was dispatched at END, which deadlocks a client waiting to send its body. It is now sent when the head arrives. The fixture matches node; without the fix it times out, exactly as in CI.
Metadata
Metadata
Assignees
Labels
No labels
The full-tier suite on main is red across the board. The last two full runs:
The other failed jobs in the 09-27 run: doc-tests on macos and windows, binary-size (#11541), native-abi-evidence-packet, compiler-output-regression, lint (the grandfathered public-baseline step), then parity-aggregate and full-suite-gate. Releases wait on
full-suite-gate, so nothing can be released. Every full-tier PR run inherits these failures too, as on #11413 and #11551.The failures fall into buckets that look systemic rather than ~170 independent regressions:
cargo-test-perry failures (09-27):
doc-tests: getting-started/npm_packages.ts and stdlib/http/fastify_json.ts (both ~400–500 s, likely timeouts), and stdlib/utilities/snippets.ts.
The next step is triage by bucket: find the first bad full-tier run or bisect each bucket, starting with the compile timeouts and the UI compile errors.
Full failure list (09-27 run)