Repository navigation
Contain kernel boot failures - #12022
Merged
Merged
Conversation
When the kernel's wasm traps, the worker's error now stays out of the page's error handler and is reported once as a handled Sentry event, tagged with the language, kernel version and device memory. The event subscription's rejection is handled, a kernel that fails to boot has its worker terminated, and a language whose kernel failed to boot stops booting kernels for the rest of the page, so its runs go to the server. Fixes EXERCISM-JS-PH Fixes EXERCISM-JS-PG Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A low-end Android tablet hit a wasm trap while booting the C++ kernel. That one failure produced two unhandled errors in Sentry (EXERCISM-JS-PH and EXERCISM-JS-PG), although the run still fell back to the server.
The kernel now cancels its worker's error event and sends one handled Sentry event instead, tagged with the language, the kernel version and
navigator.deviceMemorywhen the browser exposes it. It also handles the event subscription's rejection and terminates the worker of a kernel that fails to boot. The pool stops booting kernels for a language once one has failed to boot on the page, so later runs go straight to the server instead of downloading and unpacking the sysroot again.The manifest entry now carries its language, which
lookupadds, so the pool and the Sentry tags can use it. There are new jest tests for the kernel and the pool.🤖 Generated with Claude Code