From: "hsbt (Hiroshi SHIBATA)" Date: 2013-03-28T21:51:47+09:00 Subject: [ruby-core:53799] [ruby-trunk - Bug #8166] Since r39628 rspec-mock's and_call_original fail with SystemStackError Issue #8166 has been updated by hsbt (Hiroshi SHIBATA). Assignee set to marcandre (Marc-Andre Lafortune) >marcandre How do you think about this issue? r39628 broke Mongoid tests, Please check http://ci.hsbt.org/view/trunk/job/mongoid/85/console ---------------------------------------- Bug #8166: Since r39628 rspec-mock's and_call_original fail with SystemStackError https://bugs.ruby-lang.org/issues/8166#change-37998 Author: nagachika (Tomoyuki Chikanaga) Status: Open Priority: Normal Assignee: marcandre (Marc-Andre Lafortune) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-24 trunk 39908) [x86_64-darwin10.8.0] Hello, By r39628 [Feature 8035], Module#ancestors for a singleton class contains singleton class itself. It introduce a compatibility problem with rspec-mock's RSpec::Mocks::MessageExpectation#and_call_original. and_call_original uses Module#ancestors to find the original method overridden by a singleton method. Because ancestors contains singleton class itself, `original_method' return stub method and fall into infinite recursive call. I think hiding singleton class from ancestors is better even when a modules is pretended. -- http://bugs.ruby-lang.org/