[Ruby 1.9 - Bug #4223] GC.stress = true で謎の ArgumentError

Issue #4223 has been updated by Makoto K…

File patch-bug4223.txt added

新しいパッチです。
更新点は、

  • bigsub_int() も対策した
  • RB_GC_GUARD をコントロールフロー的に十分に後ろの場所に移動した
    の 2 点です。
    コミット(とバックポート)とクローズ(でいいですよね)お願いします。

Bug #4223: GC.stress = true で謎の ArgumentError

Author: Makoto K.
Status: Assigned
Priority: Normal
Assignee: Makoto K.
Category:
Target version: 1.9.3
ruby -v: -

=begin
手元の環境で、trunk の r29690 以降で、次のようなスクリプトが、

foo.rb

GC.stress = true
t = Time.local(2000)
File.utime(t + 1, t + 2, “foo.rb”)

こんな感じに謎の ArgumentError になります

$ ruby19 -v foo.rb
ruby 1.9.3dev (2010-12-29 trunk 30417) [x86_64-freebsd8.2]
foo.rb:4:in utime': time out of system range (ArgumentError) from foo.rb:4:in
=end