From: Usaku NAKAMURA Date: 2011-01-11T15:08:15+09:00 Subject: [ruby-dev:43003] [Ruby 1.9-Bug#4260][Open] some SEGVs in test/ruby/test_enum.rb Bug #4260: some SEGVs in test/ruby/test_enum.rb http://redmine.ruby-lang.org/issues/show/4260 起票者: Usaku NAKAMURA ステータス: Open, 優先度: Normal カテゴリ: core, Target version: 1.9.x ruby -v: ruby 1.9.3dev (2011-01-11 trunk 30510) [x64-mswin64_100] うまく説明できないんですが、r30494以後、test/ruby/test_enum.rbを実行するとSEGVが起きるようになりました。 (1) 単にtest-allで全テストを実行するとtest_sort_byでSEGV。再現性あり。 (2) test_enum.rbのみを実行するとtest_sort_byに辿りつく前にtest_dropでSEGV。再現性あり。 (3) test_enum.rbをtest_drop抜きで実行すると正常に終了。 (4) GC.stress=trueでtest_enum.rbを実行するとテストは完走するがruby終了時にSEGV。 なんだかよくわからないのですが、問題点は全て一緒で、array.cのrb_ary_resize()内の1348行目~1351行目のif()ブロックを削除すると問題が消えます。 また、もちろん、r30494をrevertすることによっても問題は消えます。 ですが、対処法としてはあまりに乱暴だと思うので現時点では対策は入れてありません。 噂ではプラットフォーム依存で私しか再現に成功してないという話なのですが、問題点と対処療法から考える限りでは、たまたま私だけが踏んでるだけで、他のプラットフォームでも何らかの潜在的な問題があるものと想像しています。 以上、とりあえず報告まで。 ---------------------------------------- http://redmine.ruby-lang.org