[pull] master from ruby:master - #1397
Merged
Merged
Conversation
cmd.exe does not understand the POSIX `VAR=value command` form and tried to run SYNTAX_SUGGEST_DEBUG as a command. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Compaction has been suppressed on s390x since 2021 because the tests randomly stalled past the 1800s output timeout. That no longer happens: on s390x.rubyci.org these all pass individually, inside a full serial test-all, and across a 100-run soak under CPU saturation, with GC.compact and GC.verify_compaction_references both behaving correctly. #5077 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
It passed 70 out of 70 runs on s390x.rubyci.org across an idle machine, a saturated one, and 2x CPU oversubscription. Its pair, test_timeout_shorter_than_global, keeps the guard: that one still reproduces the original failure, but only under oversubscription, so the sensitivity is scheduling delay rather than anything about s390x. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
It passed 40 out of 40 runs on s390x.rubyci.org, 30 of them under CPU saturation. The guard came from GitHub Actions failures in 2025, and the test has since gained a 30 second timeout for the new pool layout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
None of these has a caller, a declaration in any header, or a place in libruby's dynamic symbol table, so an extension cannot reach them either. * rb_vm_opt_newarray_pack: left over from cb9510f, which moved the instruction to the _buffer form. * rb_autoload: a wrapper around rb_autoload_str, deprecated and dropped from intern.h in Ruby 2.3 [Feature #11664]. * rb_big_fdiv: a wrapper around rb_big_fdiv_double, unused since Bignum stopped defining #fdiv. * rb_io_unbuffered: a wrapper around rb_io_synchronized, which is what it was renamed to before 1.8.0. * rb_ractor_hooks: an accessor for cr->pub.hooks; only its sibling rb_ractor_targeted_hooks is used. * rb_assert_sig: a leftover debugging aid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The omit dates from when the assertion had a 30 second timeout and the [Bug #21398] deadlock had just been fixed. It is 90 seconds now, scaled by ten on the macOS CI jobs, and the job itself takes about a second. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Turning the C level backtrace into file:line pairs walks the whole of the binary's debug info, and that is nearly all of what a crash costs: 0.8s of CPU with the dSYM in place against 0.01s without it, on an idle arm64 macOS host. The default subprocess budget of 10 seconds is meant for a child that does none of that work, and on a loaded CI host it ran out, which is what these tests were omitted for. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A subprocess that expires its timeout reports which assertion it was and the output it did manage to produce. Dropping that left nothing to go on for the crash report timeouts on macOS CI. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
macOS 26.1 and later deliver only every other ICMP port unreachable for the same pair of endpoints, so the second attempt over a socket that has already seen one waits out its whole timeout instead of failing at once. Resolving against a nameserver with nothing listening took 50 seconds there rather than returning immediately. ruby/resolv@9d09be1ad0 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
class_allocate_complex_instance() allocates the object with an extended shape and fills in as.extended only after allocating the fields object. A GC during that allocation sees a shape that says "extended" and marks whatever the reused slot left in as.extended: [BUG] try to mark T_NONE object (obj: out-of-heap:..., parent: ... T_OBJECT/(complex) ...) Before 8695116 ("Get rid of ROBJECT_HEAP flag") the mark path keyed off the ROBJECT_HEAP flag, which was set together with as.extended, so the window took the embedded path and read nothing. The shape is now set at allocation, which makes the window live. Reproduces with GC.stress on a class whose instances start with a complex shape, e.g. bootstraptest/test_yjit.rb under `-s`. Add a bootstraptest that enables GC.stress itself so a regular btest run covers it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
eb38fb6 added it as a thread-safe counterpart to postponed_job, for MJIT to enqueue work from its own thread [Bug #15316]. MJIT and RJIT are gone and nothing enqueues anything any more: rb_workqueue_register() has no caller, no declaration in any header, and hidden visibility, so an extension cannot reach it either. What is left is rb_postponed_job_flush() taking workqueue_lock on every call to steal a list that is always empty. rb_postponed_job_flush() no longer needs the VM: the preregistered job table it drains is a file-static. Drop the argument. Co-Authored-By: Claude Opus 5 (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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )