Actions
Bug #12137
closedRuby2.3 blk.binding crashes instead of giving "Can't create Binding from C level Proc (ArgumentError)"
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu] (Debian 2.3.0-4)
Description
The following code raises an ArgumentError on 2.2. On 2.3, it crashes in binding.
def repro(&blk)
blk.binding
nil
end
repro(&:succ)
Output 2.2:
crash.rb:2:in `binding': Can't create Binding from C level Proc (ArgumentError)
from crash.rb:2:in `repro'
from crash.rb:6:in `<main>'
Output 2.3:
crash.rb:2: [BUG] Segmentation fault at 0x000000000b911c
ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu]
-- Control frame information -----------------------------------------------
c:0004 p:---- s:0011 e:000010 CFUNC :binding
c:0003 p:0009 s:0008 e:000007 METHOD crash.rb:2
c:0002 p:0021 s:0004 E:001740 EVAL crash.rb:6 [FINISH]
c:0001 p:0000 s:0002 E:0024f0 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
crash.rb:6:in `<main>'
crash.rb:2:in `repro'
crash.rb:2:in `binding'
-- Machine register context ------------------------------------------------
RIP: 0x00007fad9c743aca RBP: 0x0000000001905920 RSP: 0x00007fff18c268e0
RAX: 0x0000000001760ce0 RBX: 0x00000000000b910c RCX: 0x0000000000000001
RDX: 0x0000000000000000 RDI: 0x0000000001525a00 RSI: 0x0000000000000018
R8: 0x0000000001905920 R9: 0x0000000001525a00 R10: 0x00007fff18c26b30
R11: 0x0000000000000002 R12: 0x0000000001760ce0 R13: 0x0000000000000000
R14: 0x00007fad9cd56f50 R15: 0x0000000001630e70 EFL: 0x0000000000010206
-- C level backtrace information -------------------------------------------
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(rb_print_backtrace+0x15) [0x7fad9c85b7a5] vm_dump.c:688
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(rb_vm_bugreport+0x21c) [0x7fad9c85b9dc] vm_dump.c:997
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(rb_bug_context+0xd4) [0x7fad9c736334] error.c:435
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(sigsegv+0x3e) [0x7fad9c7e7b2e] signal.c:890
/lib/x86_64-linux-gnu/libpthread.so.0 [0x7fad9c4ba660]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(proc_binding+0x6a) [0x7fad9c743aca] proc.c:2663
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(vm_call_cfunc+0x10b) [0x7fad9c8491db] vm_insnhelper.c:1638
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(vm_call_method_each_type+0x73) [0x7fad9c856ff3] vm_insnhelper.c:2022
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(vm_call_general+0xe3) [0x7fad9c858023] vm_insnhelper.c:2172
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(vm_exec_core+0x11d9) [0x7fad9c84cf29] insns.def:995
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(vm_exec+0x82) [0x7fad9c851c92] vm.c:1645
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_exec_internal+0xbd) [0x7fad9c7396dd] eval.c:244
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_exec_node+0x1d) [0x7fad9c73b0ed] eval.c:309
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_run_node+0x1e) [0x7fad9c73d20e] eval.c:301
ruby2.3 [0x40089b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7fad9b763870]
ruby2.3(_start+0x29) [0x4008c9]
-- Other runtime information -----------------------------------------------
* Loaded script: crash.rb
* Loaded features:
0 enumerator.so
1 thread.rb
2 rational.so
3 complex.so
4 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
5 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
6 /usr/lib/ruby/2.3.0/unicode_normalize.rb
7 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/rbconfig.rb
8 /usr/lib/ruby/2.3.0/rubygems/compatibility.rb
9 /usr/lib/ruby/2.3.0/rubygems/defaults.rb
10 /usr/lib/ruby/2.3.0/rubygems/deprecate.rb
11 /usr/lib/ruby/2.3.0/rubygems/errors.rb
12 /usr/lib/ruby/2.3.0/rubygems/version.rb
13 /usr/lib/ruby/2.3.0/rubygems/requirement.rb
14 /usr/lib/ruby/2.3.0/rubygems/platform.rb
15 /usr/lib/ruby/2.3.0/rubygems/basic_specification.rb
16 /usr/lib/ruby/2.3.0/rubygems/stub_specification.rb
17 /usr/lib/ruby/2.3.0/rubygems/util/list.rb
18 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
19 /usr/lib/ruby/2.3.0/rubygems/specification.rb
20 /usr/lib/ruby/2.3.0/rubygems/exceptions.rb
21 /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
22 /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
23 /usr/lib/ruby/2.3.0/monitor.rb
24 /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb
25 /usr/lib/ruby/2.3.0/rubygems.rb
26 /usr/lib/ruby/vendor_ruby/did_you_mean/version.rb
27 /usr/lib/ruby/vendor_ruby/did_you_mean/core_ext/name_error.rb
28 /usr/lib/ruby/vendor_ruby/did_you_mean/levenshtein.rb
29 /usr/lib/ruby/vendor_ruby/did_you_mean/jaro_winkler.rb
30 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkable.rb
31 /usr/lib/ruby/2.3.0/delegate.rb
32 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
33 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
34 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkers/name_error_checkers.rb
35 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkers/method_name_checker.rb
36 /usr/lib/ruby/vendor_ruby/did_you_mean/spell_checkers/null_checker.rb
37 /usr/lib/ruby/vendor_ruby/did_you_mean/formatter.rb
38 /usr/lib/ruby/vendor_ruby/did_you_mean.rb
* Process memory map:
00400000-00401000 r-xp 00000000 fe:00 110372 /usr/bin/ruby2.3
00600000-00601000 r--p 00000000 fe:00 110372 /usr/bin/ruby2.3
00601000-00602000 rw-p 00001000 fe:00 110372 /usr/bin/ruby2.3
01524000-01919000 rw-p 00000000 00:00 0 [heap]
7fad9a02d000-7fad9a1cf000 r--s 00000000 fe:00 495722 /lib/x86_64-linux-gnu/libc-2.21.so
7fad9a1cf000-7fad9aa2a000 r--s 00000000 fe:00 180861 /usr/lib/debug/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9aa2a000-7fad9aca6000 r--s 00000000 fe:00 111894 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9aca6000-7fad9acbc000 r-xp 00000000 fe:00 495715 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fad9acbc000-7fad9aebb000 ---p 00016000 fe:00 495715 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fad9aebb000-7fad9aebc000 rw-p 00015000 fe:00 495715 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fad9aebc000-7fad9aec3000 r-xp 00000000 fe:00 312116 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fad9aec3000-7fad9b0c2000 ---p 00007000 fe:00 312116 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fad9b0c2000-7fad9b0c3000 r--p 00006000 fe:00 312116 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fad9b0c3000-7fad9b0c4000 rw-p 00007000 fe:00 312116 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fad9b0c4000-7fad9b0c7000 r-xp 00000000 fe:00 312583 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fad9b0c7000-7fad9b2c6000 ---p 00003000 fe:00 312583 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fad9b2c6000-7fad9b2c7000 r--p 00002000 fe:00 312583 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fad9b2c7000-7fad9b2c8000 rw-p 00003000 fe:00 312583 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fad9b2c8000-7fad9b2ca000 r-xp 00000000 fe:00 312350 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fad9b2ca000-7fad9b4c9000 ---p 00002000 fe:00 312350 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fad9b4c9000-7fad9b4ca000 r--p 00001000 fe:00 312350 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fad9b4ca000-7fad9b4cb000 rw-p 00002000 fe:00 312350 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fad9b4cb000-7fad9b743000 r--p 00000000 fe:00 107144 /usr/lib/locale/locale-archive
7fad9b743000-7fad9b8dd000 r-xp 00000000 fe:00 495722 /lib/x86_64-linux-gnu/libc-2.21.so
7fad9b8dd000-7fad9badd000 ---p 0019a000 fe:00 495722 /lib/x86_64-linux-gnu/libc-2.21.so
7fad9badd000-7fad9bae1000 r--p 0019a000 fe:00 495722 /lib/x86_64-linux-gnu/libc-2.21.so
7fad9bae1000-7fad9bae3000 rw-p 0019e000 fe:00 495722 /lib/x86_64-linux-gnu/libc-2.21.so
7fad9bae3000-7fad9bae7000 rw-p 00000000 00:00 0
7fad9bae7000-7fad9bbeb000 r-xp 00000000 fe:00 495726 /lib/x86_64-linux-gnu/libm-2.21.so
7fad9bbeb000-7fad9bdea000 ---p 00104000 fe:00 495726 /lib/x86_64-linux-gnu/libm-2.21.so
7fad9bdea000-7fad9bdeb000 r--p 00103000 fe:00 495726 /lib/x86_64-linux-gnu/libm-2.21.so
7fad9bdeb000-7fad9bdec000 rw-p 00104000 fe:00 495726 /lib/x86_64-linux-gnu/libm-2.21.so
7fad9bdec000-7fad9bdf4000 r-xp 00000000 fe:00 495724 /lib/x86_64-linux-gnu/libcrypt-2.21.so
7fad9bdf4000-7fad9bff3000 ---p 00008000 fe:00 495724 /lib/x86_64-linux-gnu/libcrypt-2.21.so
7fad9bff3000-7fad9bff4000 r--p 00007000 fe:00 495724 /lib/x86_64-linux-gnu/libcrypt-2.21.so
7fad9bff4000-7fad9bff5000 rw-p 00008000 fe:00 495724 /lib/x86_64-linux-gnu/libcrypt-2.21.so
7fad9bff5000-7fad9c023000 rw-p 00000000 00:00 0
7fad9c023000-7fad9c025000 r-xp 00000000 fe:00 495725 /lib/x86_64-linux-gnu/libdl-2.21.so
7fad9c025000-7fad9c225000 ---p 00002000 fe:00 495725 /lib/x86_64-linux-gnu/libdl-2.21.so
7fad9c225000-7fad9c226000 r--p 00002000 fe:00 495725 /lib/x86_64-linux-gnu/libdl-2.21.so
7fad9c226000-7fad9c227000 rw-p 00003000 fe:00 495725 /lib/x86_64-linux-gnu/libdl-2.21.so
7fad9c227000-7fad9c2a9000 r-xp 00000000 fe:00 108161 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.0
7fad9c2a9000-7fad9c4a8000 ---p 00082000 fe:00 108161 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.0
7fad9c4a8000-7fad9c4a9000 r--p 00081000 fe:00 108161 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.0
7fad9c4a9000-7fad9c4aa000 rw-p 00082000 fe:00 108161 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.0
7fad9c4aa000-7fad9c4c2000 r-xp 00000000 fe:00 491924 /lib/x86_64-linux-gnu/libpthread-2.21.so
7fad9c4c2000-7fad9c6c1000 ---p 00018000 fe:00 491924 /lib/x86_64-linux-gnu/libpthread-2.21.so
7fad9c6c1000-7fad9c6c2000 r--p 00017000 fe:00 491924 /lib/x86_64-linux-gnu/libpthread-2.21.so
7fad9c6c2000-7fad9c6c3000 rw-p 00018000 fe:00 491924 /lib/x86_64-linux-gnu/libpthread-2.21.so
7fad9c6c3000-7fad9c6c7000 rw-p 00000000 00:00 0
7fad9c6c7000-7fad9c939000 r-xp 00000000 fe:00 111894 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9c939000-7fad9cb39000 ---p 00272000 fe:00 111894 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9cb39000-7fad9cb3f000 r--p 00272000 fe:00 111894 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9cb3f000-7fad9cb42000 rw-p 00278000 fe:00 111894 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fad9cb42000-7fad9cb53000 rw-p 00000000 00:00 0
7fad9cb53000-7fad9cb75000 r-xp 00000000 fe:00 491935 /lib/x86_64-linux-gnu/ld-2.21.so
7fad9cc36000-7fad9cc57000 r--s 00000000 fe:00 491924 /lib/x86_64-linux-gnu/libpthread-2.21.so
7fad9cc57000-7fad9cd5d000 rw-p 00000000 00:00 0
7fad9cd6b000-7fad9cd6c000 rw-p 00000000 00:00 0
7fad9cd6c000-7fad9cd6e000 r--s 00000000 fe:00 110372 /usr/bin/ruby2.3
7fad9cd6e000-7fad9cd6f000 ---p 00000000 00:00 0
7fad9cd6f000-7fad9cd74000 rw-p 00000000 00:00 0 [stack:91915]
7fad9cd74000-7fad9cd75000 r--p 00021000 fe:00 491935 /lib/x86_64-linux-gnu/ld-2.21.so
7fad9cd75000-7fad9cd76000 rw-p 00022000 fe:00 491935 /lib/x86_64-linux-gnu/ld-2.21.so
7fad9cd76000-7fad9cd77000 rw-p 00000000 00:00 0
7fff1842b000-7fff18c2a000 rw-p 00000000 00:00 0
7fff18d2b000-7fff18d2d000 r--p 00000000 00:00 0 [vvar]
7fff18d2d000-7fff18d2f000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
[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
[1] 91914 abort (core dumped) ruby2.3 crash.rb
This is triggered by awesome_print gem test suite.
Updated by shyouhei (Shyouhei Urabe) over 8 years ago
- Description updated (diff)
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Open to Closed
Applied in changeset r54128.
proc.c: fail symbol proc binding
- proc.c (proc_binding): proc from symbol can not make a binding.
[ruby-core:74100] [Bug #12137]
Updated by naruse (Yui NARUSE) over 8 years ago
- Backport changed from 2.1: DONTNEED, 2.2: DONTNEED, 2.3: REQUIRED to 2.1: DONTNEED, 2.2: DONTNEED, 2.3: DONE
ruby_2_3 r54413 merged revision(s) 54128.
Actions
Like0
Like0Like0Like0