From: jacknagel@... Date: 2014-10-16T01:41:47+00:00 Subject: [ruby-core:65738] [ruby-trunk - Bug #10290] segfault when calling a lambda recursively after rescuing SystemStackError Issue #10290 has been updated by Jack Nagel. I can reproduce it with gcc 4.9.1 at `-Os`: ``` $ gcc-4.9 --version gcc-4.9 (Homebrew gcc 4.9.1) 4.9.1 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ make clean && ./configure --disable-install-doc CC=gcc-4.9 CFLAGS=-Os && make -j12 $ ./miniruby -v ruby 2.2.0dev (2014-10-16 trunk 47971) [x86_64-darwin13] $ ./miniruby -e "l = -> { l.() }; begin; l.(); rescue SystemStackError; l.(); end" Segmentation fault: 11 ``` ---------------------------------------- Bug #10290: segfault when calling a lambda recursively after rescuing SystemStackError https://bugs.ruby-lang.org/issues/10290#change-49477 * Author: Jack Nagel * Status: Feedback * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47629) [x86_64-darwin13.0] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- The following code segfaults on Ruby 2.1.3: ``` l = -> { l.() } begin l.() rescue SystemStackError l.() # segfault end ``` the issue does not occur on trunk. ---Files-------------------------------- ruby_2014-09-25-000925_haswell.log (46.4 KB) ruby_2014-09-25-001644_haswell.log (46.8 KB) -- https://bugs.ruby-lang.org/