[ruby-core:94374] [Ruby master Bug#8946] Segmentation fault while NoMemoryError expected

From: merch-redmine@...
Date: 2019-08-15 22:47:29 UTC
List: ruby-core #94374
Issue #8946 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

From my testing, this was fixed between Ruby 2.2 and 2.3.  Starting with Ruby 2.3, instead of segfaulting, I get:

```
t.rb:5:in `<main>': index 268435456 too big (IndexError)
```

----------------------------------------
Bug #8946: Segmentation fault while NoMemoryError expected
https://bugs.ruby-lang.org/issues/8946#change-80789

* Author: tmqhliu (Xiaoding Liu)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------

I was trying to watch gc behavior by generating NoMemoryError intentionally, a segmentation fault occurred without any exception raised.

the simple ruby code goes here: 

```rb
arr= []

begin
  while true
    arr << 1
  end
rescue NoMemoryError
  puts 'no memory'
  puts GC.count
end
```

here is the ruby command line output: 

```
C:\Ruby200-x64\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb
C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb:6: [BUG] Segmentation fault
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]

-- Control frame information -----------------------------------------------
c:0004 p:0021 s:0011 e:000010 TOP    C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb:6 [FINISH]
c:0003 p:---- s:0008 e:000007 CFUNC  :load
c:0002 p:0035 s:0004 E:000658 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0002 E:001788 TOP    [FINISH]

-e:1:in `<main>'
-e:1:in `load'
C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb:6:in `<top (required)>'

-- C level backtrace information -------------------------------------------
C:\Windows\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0xa) [0x00000000772812FA]
C:\Windows\system32\KERNELBASE.dll(WaitForSingleObjectEx+0x9c) [0x000007FEFD3910DC]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_vm_bugreport+0x9d) [0x000000006F28327D]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_name_err_mesg_new+0x838) [0x000000006F141DF8]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_bug+0x45) [0x000000006F142BA5]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_check_safe_str+0x18c) [0x000000006F208E5C]
 [0x0000000000401A85]
C:\Windows\SYSTEM32\ntdll.dll(_C_specific_handler+0x9c) [0x00000000772485C8]
C:\Windows\SYSTEM32\ntdll.dll(RtlDecodePointer+0xad) [0x0000000077259D2D]
C:\Windows\SYSTEM32\ntdll.dll(RtlUnwindEx+0xbbf) [0x00000000772491CF]
C:\Windows\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x0000000077281248]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_ary_push+0x4c) [0x000000006F10C16C]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_vm_localjump_error+0x3223) [0x000000006F273D33]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_vm_localjump_error+0x5ed9) [0x000000006F2769E9]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_iseq_eval+0x193) [0x000000006F2801D3]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_rubylevel_errinfo+0x5ea) [0x000000006F14B83A]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_rubylevel_errinfo+0x11be) [0x000000006F14C40E]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_error_arity+0x125) [0x000000006F26E485]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_add_method_cfunc+0x5f2) [0x000000006F27DF22]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_vm_localjump_error+0x21c8) [0x000000006F272CD8]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_vm_localjump_error+0x5ed9) [0x000000006F2769E9]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_iseq_eval_main+0x1e0) [0x000000006F280400]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(rb_check_copyable+0x31f6) [0x000000006F147AD6]
C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll(ruby_run_node+0x51) [0x000000006F14A421]
 [0x0000000000402D14]
 [0x00000000004013D7]
 [0x00000000004014F8]
C:\Windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x0000000076C6652D]

-- Other runtime information -----------------------------------------------

* Loaded script: C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb

* Loaded features:

    0 enumerator.so
    1 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/encdb.so
    2 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/gbk.so
    3 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/trans/transdb.so
    4 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/rbconfig.rb
    5 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/compatibility.rb
    6 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/defaults.rb
    7 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/deprecate.rb
    8 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/errors.rb
    9 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/version.rb
   10 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/requirement.rb
   11 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/platform.rb
   12 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/specification.rb
   13 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/exceptions.rb
   14 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/defaults/operating_system.rb
   15 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/utf_16le.so
   16 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/trans/utf_16_32.so
   17 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb
   18 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb
   19 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process finished with exit code 3
```






-- 
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>

In This Thread

Prev Next