FIX: skip perform_microtask_checkpoint tests on TruffleRuby (they hang CI)#427
Open
ursm wants to merge 1 commit into
Open
FIX: skip perform_microtask_checkpoint tests on TruffleRuby (they hang CI)#427ursm wants to merge 1 commit into
ursm wants to merge 1 commit into
Conversation
perform_microtask_checkpoint is a V8-only API (the TruffleRuby backend does not implement it). The two tests added in rubyjs#418 call it without a TruffleRuby guard; test_perform_microtask_checkpoint_drains_from_callback invokes it from inside a JS->Ruby callback, which hangs the TruffleRuby graal.js context indefinitely and makes the truffleruby CI job exceed its 10-minute timeout (taking the whole suite red). Skip both on TruffleRuby, matching the convention used by other V8-only tests (max_memory, webassembly, ...). Verified locally with truffleruby+graalvm-34.0.1: the suite now completes (113 runs, 0 failures, 34 skips) instead of hanging. Co-Authored-By: Claude Opus 4.8 (1M context) <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.
Problem
The
truffleruby+graalvmCI jobs (ubuntu + macOS) have been red: the job exceeds itstimeout-minutes: 10with no test output (the graal.js stdout is buffered, so the CI log just shows# Running:and then nothing until the runner is killed).Root cause
Context#perform_microtask_checkpointis a V8-only API — the TruffleRuby backend (lib/mini_racer/truffleruby.rb) does not implement it. The two tests added with that feature call it without a TruffleRuby guard:test_perform_microtask_checkpoint_returns_niltest_perform_microtask_checkpoint_drains_from_callbackThe second invokes
perform_microtask_checkpointfrom inside a JS→Ruby callback (drain()), which hangs the TruffleRuby graal.js context indefinitely. That single hang trips the 10-minute job timeout and takes the whole suite red.Fix
Skip both tests on TruffleRuby, matching the convention already used by other V8-only tests in this file (
max_memory,webassembly, …).Verification
Reproduced locally with
truffleruby+graalvm-34.0.1:bundle exec rake testhangs attest_perform_microtask_checkpoint_drains_from_callback(never completes).113 runs, 0 failures, 0 errors, 34 skips.Note (out of scope)
A separate failure exists on the
linux-ubuntu-24.04-arm - ruby-3.3 - musljob:test_forkingintermittently fails (thetest/test_forking.rbchild, exercisingsingle_threaded+fork+ GC, crashes). It is flaky — it passed in some runs and failed in others on identical code, and could not be reproduced in 20+ runs under a faithfulaarch64-linux-muslcontainer. This PR does not address it.🤖 Generated with Claude Code