Issue #13566 has been updated by mrkn (Kenta Murata).


It can be reproducible on Ruby 2.2.7, too.

```
$ RBENV_VERSION=2.2.7 ruby -rfiddle -e 'Fiddle::Function.new(Fiddle::NULL, [], Fiddle::TYPE_VOID).call'
-e:1: [BUG] Segmentation fault at 0x00000000000000
ruby 2.2.7p470 (2017-03-28 revision 58194) [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.

-- Control frame information -----------------------------------------------
c:0003 p:---- s:0007 e:000006 CFUNC  :call
c:0002 p:0035 s:0004 E:0013b0 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0002 E:001a20 TOP    [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
-e:1:in `call'

-- Machine register context ------------------------------------------------
 rax: 0x0000000000000000 rbx: 0x0000000105d66500 rcx: 0x0000000000000000
 rdx: 0x0000000000000000 rdi: 0x0000000000000000 rsi: 0x0000000000000000
 rbp: 0x00007fff5a34de40 rsp: 0x00007fff5a34de38  r8: 0x0000000000000000
  r9: 0x0000000000000000 r10: 0x00007fff5a34dd90 r11: 0x0000000000000000
 r12: 0x0000000000000000 r13: 0x00007fba7d90c840 r14: 0x79b0ab7883740002
 r15: 0x00007fff5a34df40 rip: 0x0000000000000000 rfl: 0x0000000000010246

-- C level backtrace information -------------------------------------------
^Z
[1]+  Stopped                 RBENV_VERSION=2.2.7 ruby -rfiddle -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-64862

* 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}
{#<FFI::Pointer address=0x00000109057d10>=>[#<Proc:0x007fbb411b93e8 / callback.rb:1>]}
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 `<main>'
bin/runner:6:in `load'
callback.rb:11:in `<top (required)>'
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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>