You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.run etc. as plain property reads and checks typeof value === "function"; all read as non-functions, so the failure is in how the compiled program sees the native classes' prototype methods (codegen exposes AsyncLocalStorage/AsyncResource as native-instance classes: lower_call/builtin.rs, expr/instance_misc1.rs, this_super_call.rs), not in the later .call.
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).
Summary
crates/perry/tests/issue_6764_async_hooks_prototype_metadata.rs::async_hooks_constructors_expose_real_prototype_methodsfails on main on Linux x86_64 (perrymaster, Node 26.5.1, nightly-2026-08-20), independent of any PR. The compiled fixture reports everyAsyncLocalStorage.prototype.*/AsyncResource.prototype.*method as missing, then throws when it calls one.Reproduction (main @ 8b7dc33, fresh worktree, the CI job's own command)
Result (144 s, rc=101):
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
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.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.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).
https://claude.ai/code/session_011dhBmdn4vGgNibjo3oZqTo