Skip to content

test_gap_6908_proxy_array_mutators hangs (10s timeout) after 'sort-cmp' — pre-existing, unsnapshotted #7548

Description

@proggeramlug

Symptom

test-files/test_gap_6908_proxy_array_mutators.ts hangs — the harness kills it after its 10 s budget. Perry prints 5 of node's lines and then stops making progress:

...
reverse-hole: 4,3,,1 true true false true
sort: 1,10,9 true
sort-cmp: 2,4,10,33          <- last line Perry emits

Node continues past that point (dense: 0,3 2, objlike-reverse: b a c, objlike-splice: 5,3 4 1) and exits 0. So the hang is in whatever the test does immediately after sort-cmp — the dense / object-like mutator section.

Reproduced on the pinned quiet mini and on the dev Mac, perry-dev build, deterministic.

Not a regression, and not snapshotted

A/B'd against f06270d06 — the commit before today's 40-PR merge stack — with its own build of the full 5-package set: exit 124, identical last line. So this predates today's work and is not caused by it.

It is absent from both test-parity/gap_snapshot.json and test-parity/known_failures.json, i.e. nothing recorded it as accepted. That makes it the same class as #7518 and #7526: a real defect sitting unnoticed because parity is gated to tag pushes only, so no per-PR run ever reports it.

Per run_gap_tests.sh's own policy — "Crashes (SIGSEGV/SIGABRT/timeout) are hard defects, never cosmetic gaps" — and the guard added in #7530, this cannot be snapshotted. It needs fixing or an open tracking issue; this is the issue.

Where to look

test_gap_6908_proxy_array_mutators.ts was added by #7424 (d255ae604, "trap-route reverse/splice/fill/copyWithin on Proxy receivers; receiver-less mutator thunks throw"). A hang rather than a throw or a wrong value suggests an unbounded loop in the trap-routing path — e.g. a mutator that re-enters its own trap, or a length-driven loop whose bound is re-read through a trap that never converges.

Worth bisecting between #7424 and now: the test presumably passed when that PR landed, which would put a second regression in the same window that produced #7518 (c6ed8175d, 2026-07-30) and #7521.

Acceptance

Byte-identical to node with exit 0, plus a note on whether the hang is bounded-but-slow or genuinely non-terminating (the 10 s budget cannot distinguish them).

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