Bug #5213

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

Added by Tomoyuki Chikanaga over 2 years ago. Updated over 2 years ago.

[ruby-dev:44409]
Status:Closed
Priority:Normal
Assignee:tadayoshi funaba
Category:ext
Target version:2.0.0
ruby -v:ruby 1.9.4dev (2011-08-21 trunk 33021) [x86_64-darwin10.8.0] Backport:

Description

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

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

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

datezoneto_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 Updated by Tomoyuki Chikanaga over 2 years ago

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

#2 Updated by tadayoshi funaba over 2 years ago

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

#3 Updated by Tomoyuki Chikanaga over 2 years ago

  • Status changed from Open to Closed

r33106 でコミットしました。

Also available in: Atom PDF