Actions
Bug #19880
closedMissing write barrier in iseq instruction list
Description
There's a missing write barrier for operands in the iseq instruction list, which can cause crashes. This bug has been fixed in commit b3b57f7.
It can be reproduced when Ruby is compiled with -DRUBY_DEBUG_ENV=1
. Using the following command:
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0 RUBY_DEBUG=gc_stress ruby -w --disable=gems -Itool/lib -W0 test.rb
The following script crashes:
require "test/unit"
I have backports for Ruby 3.1 and Ruby 3.2 available here:
3.1: https://github.com/ruby/ruby/pull/8430
3.2: https://github.com/ruby/ruby/pull/8431
Updated by peterzhu2118 (Peter Zhu) over 1 year ago
- Status changed from Open to Closed
Updated by nagachika (Tomoyuki Chikanaga) over 1 year ago
- Backport changed from 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: REQUIRED to 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: DONE
Merged into ruby_3_2 at https://github.com/ruby/ruby/commit/a7335e11e354d1ee2e15233f32f087230069ad5c.
Updated by usa (Usaku NAKAMURA) over 1 year ago
- Backport changed from 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: DONE to 3.0: UNKNOWN, 3.1: DONE, 3.2: DONE
ruby_3_1 e031eff34387f300be27c24a725ddaa17f18f7e3.
Actions
Like0
Like0Like0Like0