[ruby-core:114734] [Ruby master Bug#19880] Missing write barrier in iseq instruction list

Issue #19880 has been reported by peterzhu2118 (Peter Zhu). ---------------------------------------- Bug #19880: Missing write barrier in iseq instruction list https://bugs.ruby-lang.org/issues/19880 * Author: peterzhu2118 (Peter Zhu) * Status: Open * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: REQUIRED ---------------------------------------- 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](https://github.com/ruby/ruby/commit/b3b57f70cc1ee6f40ff10b2abaa51889abce2331). 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: ```ruby 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 -- https://bugs.ruby-lang.org/

Issue #19880 has been updated by nagachika (Tomoyuki Chikanaga). 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. ---------------------------------------- Bug #19880: Missing write barrier in iseq instruction list https://bugs.ruby-lang.org/issues/19880#change-104630 * Author: peterzhu2118 (Peter Zhu) * Status: Closed * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: DONE ---------------------------------------- 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](https://github.com/ruby/ruby/commit/b3b57f70cc1ee6f40ff10b2abaa51889abce2331). 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: ```ruby 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 -- https://bugs.ruby-lang.org/

Issue #19880 has been updated by usa (Usaku NAKAMURA). 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. ---------------------------------------- Bug #19880: Missing write barrier in iseq instruction list https://bugs.ruby-lang.org/issues/19880#change-104861 * Author: peterzhu2118 (Peter Zhu) * Status: Closed * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: DONE, 3.2: DONE ---------------------------------------- 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](https://github.com/ruby/ruby/commit/b3b57f70cc1ee6f40ff10b2abaa51889abce2331). 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: ```ruby 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 -- https://bugs.ruby-lang.org/
participants (3)
-
nagachika (Tomoyuki Chikanaga)
-
peterzhu2118 (Peter Zhu)
-
usa (Usaku NAKAMURA)