From: merch-redmine@... Date: 2019-08-15T22:47:29+00:00 Subject: [ruby-core:94374] [Ruby master Bug#8946] Segmentation fault while NoMemoryError expected 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 `
': 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 `
' -e:1:in `load' C:/Users/liuxd/RubymineProjects/rubytest/ruby_learn.rb:6:in `' -- 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: