Problem
The full zig build test -Denable_jsc=true umbrella run completes the native runtime count but then hangs in bootstrap runner mirrors expansion queue tail mini-suite. The process remained live for more than one hour, consumed two cores, and retained 16.3 GiB (17.8 GiB peak) before being stopped.
A macOS sample identifies the active path as:
corpus_runner.test.bootstrap runner mirrors expansion queue tail mini-suiterunFile/runRelativeFilejsc_bootstrap.Runtime.runFileJSEvaluateScriptJSLock::willReleaseLockVM::drainMicrotasks- a deeply recursive JavaScript microtask chain ending in repeated Number
valueOferrors and GC
Isolation
The first expansion-tail case that does not complete is the unchanged corpus copy:
zig-out/bin/home-debug test packages/runtime/test/bun-corpus/js/web/encoding/text-encoder.test.jsIt exceeds 12 seconds and rapidly grows memory, while the same source addressed at the pinned Bun checkout completes normally:
zig-out/bin/home-debug test /Users/chris/Code/bun/test/js/web/encoding/text-encoder.test.jsThe later unchanged js/node/util/node-inspect-tests/parallel/util-inspect-long-running.test.mjs corpus-root path also exceeds 12 seconds, although its pinned-checkout path completes in about 0.3 seconds. This suggests a bootstrap/corpus path or realm teardown distinction, not a fixture defect.
Acceptance criteria
bootstrap runner mirrors expansion queue tail mini-suitecompletes with its current expected counts.- The unchanged text-encoder file completes with 42 passes through the corpus/bootstrap path.
- The unchanged util-inspect long-running file completes with 1 pass through the same path.
- Microtask draining is finite and runtime memory returns after each file.
- No corpus file, fixture, assertion, deadline, depth, or workload is reduced.
- Re-run the wider umbrella suite beyond this previously blocking point.
Parent parity tracker: #66.