Bug #1716
closedset_trace_func/raise related segfault, one line repro
Description
=begin
ruby -e 'set_trace_func proc{ begin; fail; rescue; end }; begin; fail; rescue; end'
-e: [BUG] Segmentation fault
ruby 1.9.1p129 (2009-05-12 revision 23412) [x86_64-linux]
-- control frame ----------
c:0004 p:0020 s:0009 b:0009 l:002588 d:000c70 BLOCK
c:0003 p:0029 s:0006 b:0006 l:002588 d:002288 EVAL -e:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:002588 d:002588 TOP
-- Ruby level backtrace information-----------------------------------------
-e:0:in rescue in <main>' -e:1:in
'
-- C level backtrace information -------------------------------------------
0x7f6cc07d632b /usr/local/lib/libruby.so.1.9(rb_vm_bugreport+0x4b) [0x7f6cc07d632b]
0x7f6cc06f72be /usr/local/lib/libruby.so.1.9 [0x7f6cc06f72be]
0x7f6cc06f7433 /usr/local/lib/libruby.so.1.9(rb_bug+0xb3) [0x7f6cc06f7433]
0x7f6cc077e29c /usr/local/lib/libruby.so.1.9 [0x7f6cc077e29c]
0x7f6cc0498080 /lib/libpthread.so.0 [0x7f6cc0498080]
0x7f6cc07cbbb7 /usr/local/lib/libruby.so.1.9 [0x7f6cc07cbbb7]
0x7f6cc07cf684 /usr/local/lib/libruby.so.1.9 [0x7f6cc07cf684]
0x7f6cc07cf7d1 /usr/local/lib/libruby.so.1.9(rb_iseq_eval_main+0xb1) [0x7f6cc07cf7d1]
0x7f6cc06f9404 /usr/local/lib/libruby.so.1.9(ruby_exec_node+0xb4) [0x7f6cc06f9404]
0x7f6cc06fabd3 /usr/local/lib/libruby.so.1.9(ruby_run_node+0x33) [0x7f6cc06fabd3]
0x4009bf ruby(main+0x4f) [0x4009bf]
0x7f6cbf86c5a6 /lib/libc.so.6(__libc_start_main+0xe6) [0x7f6cbf86c5a6]
0x4008a9 ruby [0x4008a9]
[NOTE]
You may encounter a bug of Ruby interpreter. Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
Aborted
... and in gdb ...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f71ee51a6f0 (LWP 23802)]
0x00007f71ee06ecde in vm_throw (th=0x6451c0, reg_cfp=0x7f71ee4d9e90, throw_state=0, throwobj=4) at vm_insnhelper.c:1389
1389 else if (BUILTIN_TYPE(err) == T_NODE) {
(gdb) backtrace
#0 0x00007f71ee06ecde in vm_throw (th=0x6451c0, reg_cfp=0x7f71ee4d9e90, throw_state=0, throwobj=4) at vm_insnhelper.c:1389
#1 0x00007f71ee0718c1 in vm_exec_core (th=0x6451c0, initial=0) at insns.def:1106
#2 0x00007f71ee07ed27 in vm_exec (th=0x6451c0) at vm.c:1078
#3 0x00007f71ee07f542 in rb_iseq_eval_main (iseqval=6645360) at vm.c:1294
#4 0x00007f71edf79c84 in ruby_exec_node (n=0x656670, file=) at eval.c:206
#5 0x00007f71edf7b453 in ruby_run_node (n=0x656670) at eval.c:234
#6 0x00000000004009cf in main (argc=3, argv=0x7fff3df9bc08) at main.c:35
=end