From: "usa (Usaku NAKAMURA) via ruby-core" Date: 2023-10-10T11:35:12+00:00 Subject: [ruby-core:114991] [Ruby master Bug#19880] Missing write barrier in iseq instruction list 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/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/