[pull] master from ruby:master#1172
Merged
Merged
Conversation
`do { ...; continue; } while(0)` doesn't retry the loop body.
pointed out by Coverity Scan and mame.
test_stat_single fails intermittently:
1) Failure:
TestGc#test_stat_single [test/ruby/test_gc.rb:198]:
<12> expected but was
<13>.
The test reads the full GC.stat hash and then GC.stat(:count) separately
and asserts they are equal:
stat = GC.stat
assert_equal stat[:count], GC.stat(:count)
These are two separate reads of :count. If a GC runs between them, :count
increases and the reads disagree (stat[:count] < GC.stat(:count)). A GC in
that window can be triggered by an allocation on another thread; running
the two reads in a loop with a background allocating thread reproduces it
deterministically (54/2,000,000 mismatches; 0 after the fix).
The exact source of the GC in the failing CI run is unclear (test-all runs
each test process independently), so rather than chase the trigger, disable
GC around the two reads (matching test_stat_heap etc.) so :count cannot
change between them.
CI: https://ci.rvm.jp/results/trunk@ruby-sp3/6395611
log: https://ci.rvm.jp/logfiles/brlog.trunk.20260629-050802
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
These examples pass on Windows as is now. Materialization detects a yanked platform-specific locked spec and falls back to the generic variant the same as other platforms, `bundle exec bundle` resolves the bundle executable, and git on Windows accepts branch and tag names starting with `#`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
write_lock decided whether to emit `\r\n` from @lockfile_contents, which is read in text mode and drops carriage returns on Windows. A `\r\n` lockfile was therefore rewritten with `\n`. Detect the existing line ending from the raw bytes on disk instead, and apply the conversion after the equality check so the comparison keeps operating on `\n` content. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Keeps IO errors on the raw read mapped to Bundler friendly errors like the other file operations in write_lock. Also rename the CRLF spec descriptions that spelled the line ending backwards. Co-Authored-By: Claude Opus 4.8 <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 : )