[pull] master from ruby:master#1176
Merged
Merged
Conversation
…rage thread_create_core inherited fiber storage unconditionally, so a new Ractor's main fiber received the creating thread's fiber-local storage, whose entries may be objects owned by the creating Ractor. Skip the inheritance for Ractor main threads. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Defer creating a Ractor main thread's pending-interrupt queue and mask stack from thread_create_core (the creating thread) to thread_start_func_2 (the new Ractor's own main thread). The mask stack starts empty rather than duplicating the creating thread's, so a new Ractor does not inherit its Thread.handle_interrupt state. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps the github-actions group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [ruby/setup-ruby](https://github.com/ruby/setup-ruby) | `1.315.0` | `1.316.0` | | [github/codeql-action/init](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` | | [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` | | [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` | | [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) | `1.8.0` | `1.8.1` | Updates `ruby/setup-ruby` from 1.315.0 to 1.316.0 - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@0dafeac...d45b1a4) Updates `github/codeql-action/init` from 4.36.2 to 4.36.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) Updates `github/codeql-action/analyze` from 4.36.2 to 4.36.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) Updates `github/codeql-action/upload-sarif` from 4.36.2 to 4.36.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) Updates `lewagon/wait-on-check-action` from 1.8.0 to 1.8.1 - [Release notes](https://github.com/lewagon/wait-on-check-action/releases) - [Changelog](https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md) - [Commits](lewagon/wait-on-check-action@96d9100...1d57e2c) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.316.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: github/codeql-action/init dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action/analyze dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: lewagon/wait-on-check-action dependency-version: 1.8.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
ractor_closed_port_p asserts the owning ractor's lock is held for foreign access and reads sync.ports via st_lookup, but Ractor::Port#closed? (ractor_port_closed_p) called it without the lock. From a foreign Ractor this tripped the assertion and raced the owner's st_insert/st_delete on the ports table. Take the ractor lock for foreign queries, like every other foreign reader. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rb_get_freeze_opt and rb_obj_clone_setup lazily initialized shared static
caches (the freeze keyword id and the `{freeze: true/false}` hashes) with a
plain `if (!cache)` guard. When Ractors run #clone concurrently this races:
a thread can publish a half-built hash that another freezes before it is
filled, later triggering "can't modify frozen Hash".
Use the preinterned idFreeze directly, and publish each frozen, pinned hash
with a single atomic CAS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the unconditional target_os=freebsd* override that forced rb_cv_dtrace_available=no, which was added in commit 78677f1 ("Disable DTrace in FreeBSD (#3999)") as a Ruby 3.0.0 release unblocker for the build failure reported in Bug #17212. That failure was a link error at the DTrace glommed/static-library stage ("attempted static link of dynamic object libgcc_s.so" on FreeBSD 12.x, "cannot find -lgcc_s" on 11.x), not an exec-stack or relocation problem. On modern FreeBSD (14.4, dtrace Sun D 1.13, clang 19 / lld) that stage links cleanly, so the override is obsolete. With it removed, FreeBSD goes through the normal RUBY_DTRACE_AVAILABLE detection. The rest of the FreeBSD DTrace machinery is already in place (-xnolibs autodetect, -lelf link, and the dtrace -G rebuild/glommed-object path), so no other change is needed. Verified on FreeBSD 14.4/amd64: a --enable-dtrace build succeeds; the ruby binary gets a .SUNW_dof section with the provider "ruby" and all 22 ruby::: USDT probes; and the probes register and fire under a live dtrace(1) (e.g. gc-mark-begin, gc-sweep-end, method-entry). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Group test-bundler-parallel workers by recorded runtime turbo_tests balances workers by a recorded runtime log only when invoked as a bare `spec`; this build passes an absolute spec/bundler path, so it grouped by file size and let the single heaviest file dominate the wall-clock. A tool/ patch loaded from the recipe records per-file runtimes and reorders the size-based grouper to use the previous run's data, leaving the synced spec/bin/parallel_rspec untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix stale reference in runtime recorder comment The launcher script it pointed at was replaced by the recipe calling BundlerRuntimeGrouping.install! directly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Rescue LoadError when installing runtime grouping install! is meant to degrade to filesize grouping on any failure, but LoadError from the parallel_tests require is a ScriptError and escaped the StandardError rescue, killing the whole recipe instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 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 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 : )