Project

General

Profile

Actions

Bug #4260

closed

some SEGVs in test/ruby/test_enum.rb

Added by usa (Usaku NAKAMURA) over 11 years ago. Updated about 11 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 1.9.3dev (2011-01-11 trunk 30510) [x64-mswin64_100]
Backport:
[ruby-dev:43003]

Description

=begin
うまく説明できないんですが、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することによっても問題は消えます。
ですが、対処法としてはあまりに乱暴だと思うので現時点では対策は入れてありません。

噂ではプラットフォーム依存で私しか再現に成功してないという話なのですが、問題点と対処療法から考える限りでは、たまたま私だけが踏んでるだけで、他のプラットフォームでも何らかの潜在的な問題があるものと想像しています。

以上、とりあえず報告まで。
=end

Actions

Also available in: Atom PDF