[#46807] [ruby-trunk - Bug #7625][Open] Arrayを継承したオブジェクトのcompactがArrayを返す — "mogya@... (Daisuke Furukawa)" <mogya@...>

19 messages 2012/12/26

[#46822] [ruby-trunk - Feature #7639][Open] More freedom for location of comments — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

14 messages 2012/12/30

[ruby-dev:46820] [ruby-trunk - Bug #7638][Open] trunk で rails の activesupport のテストが失敗してしまう

From: "hsbt (Hiroshi SHIBATA)" <shibata.hiroshi@...>
Date: 2012-12-30 06:00:58 UTC
List: ruby-dev #46820
Issue #7638 has been reported by hsbt (Hiroshi SHIBATA).

----------------------------------------
Bug #7638: trunk で rails の activesupport のテストが失敗してしまう
https://bugs.ruby-lang.org/issues/7638

Author: hsbt (Hiroshi SHIBATA)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-12-29 trunk 38656) [x86_64-darwin12.2.1]


Ruby のバグとは言い切れませんが、ある時期から activesupport のテストが落ちるようになってしまいました。

Ruby と Rails のどちらを直すべきか判断できないので、何か教えて頂けると助かります。

落ちてしまうテストは

https://github.com/rails/rails/blob/master/activesupport/test/core_ext/marshal_test.rb

です。テストの実行方法は以下の通りです。

% git clone git://github.com/rails/rails.git
% cd rails
% gem install bundler --pre
% bundle
% cd activesupport
% bundle exec ruby -Itest:lib test/core_ext/marshal_test.rb

テストを実行すると Thread の deadlock が発生しますが、Thread.abort_on_exception = true で実行すると

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/testing/isolation.rb#L31

の method_missing 部分で marshal_load が @calls に追加され、この @calls が L26 で send されて NoMethodError で落ちていることがわかりました。

いつから落ち始めたかを調べたところ、

http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38175

の変更によって、_dump が @calls に追加されるようになり、rails のテストが落ちはじめ

http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38568

の変更で _dump ではなく marshal_load が @calls に追加されるようになって今も落ち続けているという状態です。

Rails のコードに marshal_load と marshal_dump を定義すればテストは落ちなくなるのですが、38175 より前では
発生していなかった現象が発生するようになった原因など教えて頂けないでしょうか。


-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next