From: muraken@... Date: 2017-05-17T02:42:01+00:00 Subject: [ruby-core:81208] [Ruby trunk Bug#13566] A process freezes at the beginning of C level backtrace when a certain SEGV is occurred Issue #13566 has been updated by mrkn (Kenta Murata). I confirmed that it is reproducible on Ruby 2.3.3. ``` $ RBENV_VERSION=2.3.3 ruby -r fiddle -e 'Fiddle::Function.new(Fiddle::NULL, [], Fiddle::TYPE_VOID).call' -e:1: [BUG] Segmentation fault at 0x00000000000000 ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] -- Crash Report log information -------------------------------------------- See Crash Report log file under the one of following: * ~/Library/Logs/CrashReporter * /Library/Logs/CrashReporter * ~/Library/Logs/DiagnosticReports * /Library/Logs/DiagnosticReports for more details. Don't forget to include the above Crash Report log file in bug reports. -- Control frame information ----------------------------------------------- c:0003 p:---- s:0007 e:000006 CFUNC :call c:0002 p:0037 s:0004 E:001370 EVAL -e:1 [FINISH] c:0001 p:0000 s:0002 E:001e70 (none) [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `
' -e:1:in `call' -- Machine register context ------------------------------------------------ rax: 0x0000000000000000 rbx: 0x00007fd196c064a0 rcx: 0x0000000000000000 rdx: 0x0000000000000000 rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x00007fff5bc7dce0 rsp: 0x00007fff5bc7dcd8 r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x00007fff5bc7dc30 r11: 0x0000000000000000 r12: 0x00007fff5bc7dea0 r13: 0x0000000000000000 r14: 0xc922be45f27300e8 r15: 0x00007fff5bc7deb8 rip: 0x0000000000000000 rfl: 0x0000000000010246 -- C level backtrace information ------------------------------------------- ^Z [1]+ Stopped RBENV_VERSION=2.3.3 ruby -r fiddle -e 'Fiddle::Function.new(Fiddle::NULL, [], Fiddle::TYPE_VOID).call' ``` ---------------------------------------- Bug #13566: A process freezes at the beginning of C level backtrace when a certain SEGV is occurred https://bugs.ruby-lang.org/issues/13566#change-64861 * Author: mrkn (Kenta Murata) * Status: Open * Priority: Normal * Assignee: naruse (Yui NARUSE) * Target version: * ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- I found the issue that a process freezes at the beginning of C level backtrace printing when a certain SEGV is occurred. I've made a reproducible code in the freeze_on_segv branch of pycall project. You can check it by the following steps: ``` $ git clone git@github.com:mrkn/pycall.git $ git checkout -t origin/freeze_on_segv $ bundle install $ bin/runner callback.rb ``` When you succeed to reproduce the issue, you can see the following output: ``` $ bin/runner callback.rb {:rw_refcnt=>1} 42 42 {:res=>42} {#=>[#]} callback.rb:11: [BUG] Segmentation fault at 0x00000000000000 ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16] -- Crash Report log information -------------------------------------------- See Crash Report log file under the one of following: * ~/Library/Logs/DiagnosticReports * /Library/Logs/DiagnosticReports for more details. Don't forget to include the above Crash Report log file in bug reports. -- Control frame information ----------------------------------------------- c:0005 p:---- s:0021 e:000020 CFUNC :Py_DecRef c:0004 p:0105 s:0016 E:002530 TOP callback.rb:11 [FINISH] c:0003 p:---- s:0011 e:000010 CFUNC :load c:0002 p:0034 s:0006 e:000005 EVAL bin/runner:6 [FINISH] c:0001 p:0000 s:0003 E:0013a0 (none) [FINISH] -- Ruby level backtrace information ---------------------------------------- bin/runner:6:in `
' bin/runner:6:in `load' callback.rb:11:in `' callback.rb:11:in `Py_DecRef' -- Machine register context ------------------------------------------------ rax: 0x00007fbb43667950 rbx: 0x729546a3ab9700ab rcx: 0x00007fbb40d05190 rdx: 0x00007fbb40d05190 rdi: 0x0000000109057d10 rsi: 0x00007fbb411e0358 rbp: 0x00007fff577eb6c0 rsp: 0x00007fff577eb6b8 r8: 0x00007fff577eb6e0 r9: 0x00000001085e46a1 r10: 0x00007fff577eb610 r11: 0x0000000108ca1d30 r12: 0x0000000000000000 r13: 0x0000000000000001 r14: 0x729546a3ab9700ab r15: 0x00007fff577eb7d0 rip: 0x0000000000000000 rfl: 0x0000000000010246 -- C level backtrace information ------------------------------------------- ``` At this point, C-c doesn't work. -- https://bugs.ruby-lang.org/ Unsubscribe: