Repository navigation
Description
Summary
crates/perry/tests/issue_6764_async_hooks_prototype_metadata.rs::async_hooks_constructors_expose_real_prototype_methods fails on main on Linux x86_64 (perrymaster, Node 26.5.1, nightly-2026-08-20), independent of any PR. The compiled fixture reports every AsyncLocalStorage.prototype.* / AsyncResource.prototype.* method as missing, then throws when it calls one.
Reproduction (main @ 8b7dc33, fresh worktree, the CI job's own command)
cargo build --release -p perry-runtime-static -p perry-stdlib-static && \
PERRY_RUNTIME_DIR=$PWD/target/release cargo test -p perry --test issue_6764_async_hooks_prototype_metadata async_hooks_constructors_expose_real_prototype_methods
Result (144 s, rc=101):
test async_hooks_constructors_expose_real_prototype_methods ... FAILED
panicked at crates/perry/tests/issue_6764_async_hooks_prototype_metadata.rs:100:5: compiled fixture failed, status: ExitStatus(unix_wait_status(256))
fixture stdout:
storage: constructor:AsyncLocalStorage/0|run:missing|getStore:missing|enterWith:missing|exit:missing|disable:missing
resource: constructor:AsyncResource/1|asyncId:missing|triggerAsyncId:missing|emitDestroy:missing|runInAsyncScope:missing|bind:missing
fixture stderr:
TypeError: Function.prototype.call was called on a value that is not a function at <anonymous>
The same output, byte for byte, appears on the branch of #9958 (the job that first surfaced it locally); a replay of that branch's parent is what attributed it to main.
What is known
- The fixture reads
AsyncLocalStorage.prototype.runetc. as plain property reads and checkstypeof value === "function"; all read as non-functions, so the failure is in how the compiled program sees the native classes' prototype methods (codegen exposesAsyncLocalStorage/AsyncResourceas native-instance classes:lower_call/builtin.rs,expr/instance_misc1.rs,this_super_call.rs), not in the later.call. - Before the hosted runners stalled, GitHub's
cargo-test-perry (7/8)on main was green while the same shard on perf(regex): a literal that is only ever .test()ed at its site reuses one rooted header instead of allocating per evaluation #9958 was red with this test — macOS runners. Either the test is Linux-only red, or the macOS main shard did not execute it. Not yet checked on a Mac with the same command. - Not in the known-red-on-main set of the local ladder baseline (main health 2026-09-08: what the local CI replay found (7 reds on main, 3 with fix PRs, the obsolete #7254 pin, a Linux hang, a load-sensitive SIGSEGV) #9974) until now because no earlier ladder had run this PR-named job; it is being added.
Ask
Fix or attribute: run the command above on Linux main; if it is Linux-only, find the platform-dependent piece of the native-class prototype exposure. Until then, treat this job as known-red-on-main in local replays (see #9974).
Activity