Skip to content

test: regression coverage for V8 Intl crash (#70), cross-exec loopback (#88), and JSON-over-VFS result decode (#11/#59)#97

Merged
NathanFlurry merged 1 commit into
mainfrom
test/regression-issues-11-59-70-88
Jun 20, 2026
Merged

test: regression coverage for V8 Intl crash (#70), cross-exec loopback (#88), and JSON-over-VFS result decode (#11/#59)#97
NathanFlurry merged 1 commit into
mainfrom
test/regression-issues-11-59-70-88

Conversation

@NathanFlurry

@NathanFlurry NathanFlurry commented Jun 19, 2026

Copy link
Copy Markdown
Member

Adds permanent regression tests for four issues already fixed on main but lacking dedicated coverage.

  • Closes #70javascript_execution_to_locale_date_string_does_not_crash_embedded_v8 runs the exact toLocaleDateString repro (en-GB, day/month/year, Europe/Warsaw) and asserts clean termination with a non-empty string, guarding the near-heap-limit OOM guard in crates/v8-runtime/src/isolate.rs.
  • Closes #88javascript_net_cross_exec_loopback_routes_through_kernel_socket_table proves a listener in one exec and a connector in a different exec inside the same VM communicate over loopback, with the client routed through the shared kernel socket table and bytes crossing the exec boundary.
  • Refs #11 / Refs #59packages/core/tests/node-runtime-decode.test.ts locks in the architectural fix: no host-side node:v8 deserialize, structured results decoded as JSON over the VFS. These issues are largely environmental (host Node/V8 version sensitivity, Lambda cold-start); this is the testable root-cause guard in a plain Node-host CI, alongside the existing binary-resolution suite (packages/sidecar/tests/index.test.cjs). Not marked Closes because full behavioral coverage would need a live sidecar binary.

Verification

…ble)

Add permanent regression tests for four issues that are already fixed on
main but lacked dedicated coverage.

- #70 (toLocaleDateString crashed embedded V8 with SIGTRAP): new helper
  javascript_execution_to_locale_date_string_does_not_crash_embedded_v8 in
  crates/execution/tests/javascript_v8.rs, wired into javascript_v8_suite().
  Runs the exact repro (en-GB toLocaleDateString with day/month/year options
  and an explicit Europe/Warsaw time zone) and asserts the guest exits 0 and
  returns a non-empty string, guarding the near-heap-limit OOM guard that now
  converts ICU's fatal abort into clean termination.

- #88 (cross-exec server/client over loopback in one VM): new test
  javascript_net_cross_exec_loopback_routes_through_kernel_socket_table in
  crates/sidecar/tests/service.rs, wired into the service suite. Starts two
  distinct guest exec processes in one VM, has process A net.listen and a
  separate process B net.connect to it, asserts B's socket has a
  kernel_socket_id (routed through the shared kernel socket table), and that a
  byte written by B crosses the exec boundary and is read by A. Guards the
  per-VM socket-path context that collects every concurrent exec's listeners.

- #11 / #59 (host-engine / Node-version sensitivity and Lambda cold-start
  crash): new packages/core/tests/node-runtime-decode.test.ts asserts the host
  run()/decode path uses no node:v8 deserialize and decodes structured results
  as JSON read back over the VFS, with a nested-value round-trip through that
  exact path. These issues are largely environmental; this guards the testable
  root cause in a plain Node-host CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@railway-app

railway-app Bot commented Jun 19, 2026

Copy link
Copy Markdown

🚅 Environment secure-exec-pr-97 in rivet-frontend has no services deployed.

@NathanFlurry
NathanFlurry merged commit 8ff9127 into main Jun 20, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant