From: peter@... Date: 2021-02-16T15:25:21+00:00 Subject: [ruby-core:102543] [Ruby master Bug#17636] Race condition in check_rvalue_consistency_force when using ractors 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: