[ruby-core:71388] [Ruby trunk - Bug #11667] [Open] Ruby process crashes when TracePoint.new(:raise) is enabled and SystemStackError is raised

From: mail@...
Date: 2015-11-09 03:17:58 UTC
List: ruby-core #71388
Issue #11667 has been reported by Yuki Nishijima.

----------------------------------------
Bug #11667: Ruby process crashes when TracePoint.new(:raise) is enabled and SystemStackError is raised
https://bugs.ruby-lang.org/issues/11667

* Author: Yuki Nishijima
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-10-23 trunk 52247) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
Let's say a `TracePoint.new(:raise)` is enabled. When a method that recursively calls itself, the Ruby process will just die rather than raising a SystemStackError.

```
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
$ irb
2.2.3 :001 > TracePoint.new(:raise){}.enable
 => false 
2.2.3 :002 > def f(i); f(i-1); end; f(10_000)
/usr/local/rvm/rubies/ruby-2.2.3/bin/irb: exception reentered (fatal)
```

```
$ ruby -v
ruby 2.3.0dev (2015-10-23 trunk 52247) [x86_64-linux]
$ irb
head :001 > TracePoint.new(:raise){|tp| tp.raised_exception }.enable
 => false 
head :002 > def f(i); f(i-1); end; f(10_000)
/usr/local/rvm/rubies/ruby-head/bin/irb: exception reentered (fatal)
```

I expect this code to raise `SystemStackError` instead.



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

In This Thread

Prev Next