Issue #10847 has been updated by Usaku NAKAMURA.

Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE to 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE

ruby_2_1 r50284 merged revision(s) 49867.

----------------------------------------
Bug #10847: SystemStackError after NameError prepends a module
https://bugs.ruby-lang.org/issues/10847#change-52132

* Author: Yuki Nishijima
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
* Backport: 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE
----------------------------------------
The following code causes `SystemStackError`.

```ruby
module Foo
end

NameError.prepend Foo
foo rescue $!
```

And here is the full backtrace:

```
system_stack_error_from_name_error.rb:3:in `initialize': stack level too deep (SystemStackError)
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	 ... 10907 levels...
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `initialize'
	from system_stack_error_from_name_error.rb:3:in `method_missing'
	from system_stack_error_from_name_error.rb:3:in `<main>'
```

This happens on Ruby 2.0.0, 2,1,5, 2.2.0 and ruby-trunk(rev 49451).



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