ReviewOS

home-lang/home

Request clone stress: diagnose intermittent original five-second deadline failure

#701
Open chris opened this 9 days ago ·
9 days ago

Part of #66; discovered during adjacent verification for #699 after the native Request activation in #697/#698.

Observed failure

The ordinary home test packages/runtime/test/test/js/web/request command failed on the current optimized body/stream candidate (binary SHA-256 68fcba6aed61397b1fe94fe1c2e4291644e68324c6ee4097f2a9f5adfabc181f). In the unchanged request-clone-leak.test.ts, the final request.clone(test #5) case took 5,899.42 ms and exceeded the original 5,000 ms deadline. The native file reports 11 passes / one failure / 12 assertions and a 47,346.34 ms total. Its RSS deltas were 0–9 MB, within the original 30 MB limit.

The directory runner reports 12 passes and one failed file; the remaining construction/method/subclass files pass. This result must remain recorded. Do not turn it green by increasing the deadline, reducing loops, adding warm-ups, introducing retries or suppressing the failure.

Diagnostic comparison

After that failure, one diagnostic run per runtime used the same original absolute fixture/preload paths, mirrored project cwd and startup environment (BUN_GARBAGE_COLLECTOR_LEVEL=0, internal testing enabled). All passed 12/12 with 12 assertions:

RuntimeEntire fileFinal clone case
Pinned Bun 4982b91e3702094330f3be3883354c52b8c0132317.96 s1,406.89 ms
Previous Home 649c3c48f / binary f7e0abf6e3e75795c70f48221810814e986bcfa52c80cda7a6f614d82a29257f11,464.48 ms1,492.39 ms
Current Home candidate9,089.76 ms889.05 ms

These sequential comparisons establish timing variability; they are not a controlled benchmark, a root-cause proof, or a replacement for the failed ordinary run. Other unrelated compilation/test jobs were active on the host during the investigation; whether contention caused the timeout remains unproven. No environment GC override was inherited, and inspection confirms GC level 0 does not select either aggressive collection mode.

Remaining work

  • Diagnose the original deadline failure using native execution/profiling and an explicit record of host conditions.
  • Fix any Home performance, scheduling or collection defect found; preserve every original allocation/clone loop, RSS assertion and 5-second deadline.
  • Verify the original ordinary Request directory and pinned control without retries or test-specific execution changes. If this is an external-resource prerequisite rather than a runtime defect, document the evidence and faithful execution requirements explicitly.
  • Keep this issue and #66 open until the failure is explained and the required validation is available.

Evidence: /tmp/home-699-results/route-js-web-request.log, /tmp/home-699-request-controls.log, /tmp/home-699-request-controls/, /tmp/home-699-request-comparison.json.

9 days ago

The observed candidate is now published as 04644b2d0 on origin/main. Its binary SHA-256 remains 68fcba6aed61397b1fe94fe1c2e4291644e68324c6ee4097f2a9f5adfabc181f. The original failed Request directory run and the three diagnostic comparisons are recorded in the committed runtime verification document and #66. This issue remains open; no Request deadline/performance repair is claimed by the body/stream activation commit.

9 days ago

The ordinary full Request directory passes 24/24 on the new Blob publication f491cacd7, binary SHA-256 e444d3378dc349b89bf786228995209ae9f6e88d40ceb8ce80d34c12d7c90c65. This was the scheduled adjacent check for that code change, with original workloads and deadlines and no retry policy. Its passing result does not explain or erase the earlier failure, so this issue remains open.

Current run evidence: /tmp/home-700-results/route-js-web-request.log; coarse host-load observations were recorded separately in /tmp/home-700-results/adjacent-host-load.log. Those observations alone do not establish causation.

9 days ago

The final #702 integrated optimized Home build passes the unchanged Request directory 24/24 through the ordinary corpus route. Source tree: e1a5d0e20; binary SHA-256 4a937ded48d609b76e336fdc192dd96439653a228073a234aaafcba176a5e783; verification publication 1cbac2921 on origin/main. No original deadlines, warm-up loops or workloads changed. This passing run does not explain or repair the earlier 5,899.42 ms failure against the original 5,000 ms deadline; this issue remains open. Durable current log: zig-out/bun-port-702/js-web-request.log.

Sign in to comment on this issue.