Project

General

Profile

Bug #5213

GC.stress=true で TestSH#test_commercial が Failure になる

Added by Tomoyuki Chikanaga almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
ruby -v:
ruby 1.9.4dev (2011-08-21 trunk 33021) [x86_64-darwin10.8.0]
[ruby-dev:44409]

Description

make test-all TESTS="--gc-stress date/test_switch_hitter.rb -n test_commercial"
を実行すると

1) Failure:
test_commercial(TestSH) [/Users/nagachika/opt/ruby-trunk/src/ruby/test/date/test_switch_hitter.rb:176]:
<[2001, 2, 3, 4, 5, 6, (3/8)]> expected but was
<[2001, 2, 3, 4, 5, 6, (0/1)]>.

といったエラーになります。

date_zone_to_diff() でバッファを利用中の文字列(変数str)を上書きすることがあるためで、添付のパッチで現象は抑制できました。

date_parse.c.patch Magnifier (435 Bytes) Tomoyuki Chikanaga, 08/22/2011 11:59 PM

date_parse.c.2.patch Magnifier (1.25 KB) Tomoyuki Chikanaga, 08/23/2011 12:28 PM

History

#1 [ruby-dev:44411] Updated by Tomoyuki Chikanaga almost 5 years ago

すみません、valgrind で実行するとその他に str のバッファをはみだしてアクセスする場合があったのでその修正と、RB_GC_GUARD を使うようにしたのでパッチを更新します。

#2 [ruby-dev:44429] Updated by tadayoshi funaba almost 5 years ago

コミットしておいて下さい。

#3 [ruby-dev:44437] Updated by Tomoyuki Chikanaga almost 5 years ago

  • Status changed from Open to Closed

r33106 でコミットしました。

Also available in: Atom PDF