[#102393] [Ruby master Feature#17608] Compact and sum in one step — sawadatsuyoshi@...

Issue #17608 has been reported by sawa (Tsuyoshi Sawada).

13 messages 2021/02/04

[#102438] [Ruby master Bug#17619] if false foo=42; end creates a foo local variable set to nil — pkmuldoon@...

Issue #17619 has been reported by pkmuldoon (Phil Muldoon).

10 messages 2021/02/10

[#102631] [Ruby master Feature#17660] Expose information about which basic methods have been redefined — tenderlove@...

Issue #17660 has been reported by tenderlovemaking (Aaron Patterson).

9 messages 2021/02/27

[#102639] [Ruby master Misc#17662] The herdoc pattern used in tests does not syntax highlight correctly in many editors — eregontp@...

Issue #17662 has been reported by Eregon (Benoit Daloze).

13 messages 2021/02/27

[#102652] [Ruby master Bug#17664] Behavior of sockets changed in Ruby 3.0 to non-blocking — ciconia@...

Issue #17664 has been reported by ciconia (Sharon Rosner).

23 messages 2021/02/28

[ruby-core:102543] [Ruby master Bug#17636] Race condition in check_rvalue_consistency_force when using ractors

From: peter@...
Date: 2021-02-16 15:25:21 UTC
List: ruby-core #102543
Issue #17636 has been reported by peterzhu2118 (Peter Zhu).

----------------------------------------
Bug #17636: Race condition in check_rvalue_consistency_force when using ractors
https://bugs.ruby-lang.org/issues/17636

* Author: peterzhu2118 (Peter Zhu)
* Status: Open
* Priority: Normal
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
When `RGENGC_CHECK_MODE` is enabled and we use multiple ractors, there is a race condition in `check_rvalue_consistency_force` that causes an assertion to fail. It happens when a page is created during the call to `is_pointer_to_heap`, which causes the binary search to fail.

# Reproduction

```ruby
NUM_RACTORS = 10

rs = NUM_RACTORS.times.map do |i|
  Ractor.new(i) do |i|
    arr = []
    
    10_000.times do |j|
      arr << "foo.#{i}.#{j}"
    end

    arr
  end
end

arrs = rs.map { |r| r.take }
```
The crash log is attached below in `crash.log`.


---Files--------------------------------
crash.log (20.1 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next