Project

General

Profile

Actions

Bug #5213

closed

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

Added by nagachika (Tomoyuki Chikanaga) about 13 years ago. Updated about 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.4dev (2011-08-21 trunk 33021) [x86_64-darwin10.8.0]
Backport:
[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)を上書きすることがあるためで、添付のパッチで現象は抑制できました。


Files

date_parse.c.patch (435 Bytes) date_parse.c.patch nagachika (Tomoyuki Chikanaga), 08/22/2011 11:59 PM
date_parse.c.2.patch (1.25 KB) date_parse.c.2.patch nagachika (Tomoyuki Chikanaga), 08/23/2011 12:28 PM

Updated by nagachika (Tomoyuki Chikanaga) about 13 years ago

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

Updated by tadf (tadayoshi funaba) about 13 years ago

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

Updated by nagachika (Tomoyuki Chikanaga) about 13 years ago

  • Status changed from Open to Closed

r33106 でコミットしました。

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0