2.2 KiB
M13-03D Status
status: done
task: sandbox crash/timeout isolation
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
Scope
The sandbox job termination receipt now converts crash, wall-time timeout and cancellation into
stable fail-closed statuses. Every terminated receipt keeps mainRevisionAfter equal to
mainRevisionBefore, publishes no result, releases temporary bytes, and remains
execution=DISABLED; a result received after termination is rejected with
SCRIPT_SANDBOX_LATE_RESULT.
The Chromium test starts a production Worker that throws for the crash case and a production Worker that would publish a delayed result for the timeout case. The host observes the crash, terminates the timeout Worker before its delayed message, and confirms no late message arrives.
Evidence
node --test web/tests/unit/script-sandbox-isolation.test.mjspassed 3/3.CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5532 npm --prefix web run test:script-sandbox-isolationpassed unit 3/3 and Chromium Worker E2E 1/1.node tools/web/check-script-sandbox-isolation.mjspassed:script-sandbox-isolation-ok crash=SCRIPT_SANDBOX_CRASHED timeout=SCRIPT_SANDBOX_TIMEOUT revisionUnchanged=true late=SCRIPT_SANDBOX_LATE_RESULT next=M13-03E.npm --prefix web run typecheckandgit diff --checkpassed.
Artifact Hashes
- protocol:
6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2 - worker:
8c810ee7c8bd15d83ecfb4981068f947536bfe8c9e63b906861f42b8465722da - checker:
e5c0c3c7cd500c269ae43a1a9eb05589e82aad28199ab4f11ad1167b486f6937 - unit:
47986f93638fdc18b817b03222484f4691dc294185040eaebac8e1f386bc1549 - e2e:
2c16c42f09827a0c0100ef2cc6295ca6bc96933ed7475e08b1fa195d7940c141 - report:
4af91cdb21101039b379136c7559b46df55f4f5ab5478c05c1c57cd6e1624d2a - manifest:
8066013f3d356ba438c36d1f1ea1cf692dbb4f60b086f552072e36b783a96d42
Next Task
M13-03E: cancellation after termination must not publish a late message or cache.
Rollback
Remove the isolation Worker additions, focused tests/checker, report, manifest and this status entry;
restore M13-03C as the queue tail and move nextTask back to M13-03D.