Project

General

Profile

Actions

Bug #11667

closed

Ruby process crashes when TracePoint.new(:raise) is enabled and SystemStackError is raised

Added by yuki24 (Yuki Nishijima) over 8 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-10-23 trunk 52247) [x86_64-linux]
[ruby-core:71388]

Description

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.

Actions

Also available in: Atom PDF

Like0
Like0Like0