Skip to content

sometimes segfaulting with ruby 2.5.0 #150

Description

@doits

Sometime after upgrade to ruby 2.5.0 I hit the following segfault:

[BUG] Segmentation fault at 0x000000000000003f
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0019 p:---- s:0111 e:000110 CFUNC  :packer
c:0018 p:0014 s:0107 e:000106 METHOD /cache/gems/ruby_2.5/gems/msgpack-1.2.0/lib/msgpack.rb:42
c:0017 p:0148 s:0100 e:000097 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:75
c:0016 p:0009 s:0092 e:000091 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:55
c:0015 p:0028 s:0088 e:000086 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:47
c:0014 p:0007 s:0083 e:000082 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:138
c:0013 p:0057 s:0078 e:000077 BLOCK  /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:121 [FINISH]
c:0012 p:---- s:0075 e:000074 CFUNC  :synchronize
c:0011 p:0012 s:0071 e:000070 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:115
c:0010 p:0064 s:0066 e:000065 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:14 [FINISH]
c:0009 p:---- s:0058 e:000057 CFUNC  :new
c:0008 p:0030 s:0051 e:000050 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache.rb:29
c:0007 p:0061 s:0042 e:000041 METHOD /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap.rb:24
c:0006 p:0305 s:0030 e:000029 TOP    /cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/setup.rb:33 [FINISH]
c:0005 p:---- s:0020 e:000019 CFUNC  :require
c:0004 p:0055 s:0015 e:000014 TOP    /builds/stellenticket/caseman-events/config/boot.rb:4 [FINISH]
c:0003 p:---- s:0012 e:000011 CFUNC  :require_relative
c:0002 p:0046 s:0007 E:001618 EVAL   bin/rails:8 [FINISH]
c:0001 p:0000 s:0003 E:000420 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
bin/rails:8:in `<main>'
bin/rails:8:in `require_relative'
/builds/stellenticket/caseman-events/config/boot.rb:4:in `<top (required)>'
/builds/stellenticket/caseman-events/config/boot.rb:4:in `require'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/setup.rb:33:in `<top (required)>'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap.rb:24:in `setup'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache.rb:29:in `setup'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache.rb:29:in `new'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:14:in `initialize'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:115:in `reinitialize'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:115:in `synchronize'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:121:in `block in reinitialize'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/cache.rb:138:in `push_paths_locked'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:47:in `transaction'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:55:in `commit_transaction'
/cache/gems/ruby_2.5/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/store.rb:75:in `dump_data'
/cache/gems/ruby_2.5/gems/msgpack-1.2.0/lib/msgpack.rb:42:in `pack'
/cache/gems/ruby_2.5/gems/msgpack-1.2.0/lib/msgpack.rb:42:in `packer'

-- Machine register context ------------------------------------------------
 RIP: 0x0000556fa42fe124 RBP: 0x0000556fa60f9bd0 RSP: 0x00007ffe80f38620
 RAX: 0x0000556fa60f9bd0 RBX: 0x0000556fa5e2c088 RCX: 0x0000556fa548d338
 RDX: 0x0000556fa60f9ba8 RDI: 0x000000000000002f RSI: 0x0000000000004008
  R8: 0x0000000000000000  R9: 0x0000556fa5428670 R10: 0x00000000000005c7
 R11: 0x0000556fa42fe0e0 R12: 0x0000000000000000 R13: 0x0000000000504025
 R14: 0x0000556fa5cb84a0 R15: 0x0000556fa5c3e430 EFL: 0x0000000000010202

-- C level backtrace information -------------------------------------------
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_vm_bugreport+0x53e) [0x556fa44eb1ae] vm_dump.c:703
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_bug_context+0xd1) [0x556fa44df851] error.c:580
/usr/local/rbenv/versions/2.5.0/bin/ruby(sigsegv+0x42) [0x556fa43cc5f2] signal.c:928
/lib/x86_64-linux-gnu/libpthread.so.0(0x7fa35007b390) [0x7fa35007b390]
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_hash_dup+0x44) [0x556fa42fe124] hash.c:459
/cache/gems/ruby_2.5/gems/msgpack-1.2.0/lib/msgpack/msgpack.so(msgpack_packer_ext_registry_dup+0x14) [0x7fa34df85494]
/cache/gems/ruby_2.5/gems/msgpack-1.2.0/lib/msgpack/msgpack.so(MessagePack_Factory_packer+0x6a) [0x7fa34df8046a]
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_cfunc+0xee) [0x556fa443da7e] vm_insnhelper.c:1918
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_method+0xe3) [0x556fa444c543] vm_insnhelper.c:2381
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec_core+0x3589) [0x556fa4446e49] insns.def:915
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec+0x87) [0x556fa444a897] vm.c:1778
/usr/local/rbenv/versions/2.5.0/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x556fa444b640] vm.c:979
/usr/local/rbenv/versions/2.5.0/bin/ruby(invoke_block_from_c_bh.constprop.137+0x83) [0x556fa444bb33] vm.c:1049
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_yield+0x124) [0x556fa4453154] vm.c:1094
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_ensure+0xc3) [0x556fa42d8613] eval.c:1037
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_cfunc+0xee) [0x556fa443da7e] vm_insnhelper.c:1918
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_method+0xe3) [0x556fa444c543] vm_insnhelper.c:2381
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec_core+0x3350) [0x556fa4446c10] insns.def:850
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec+0x87) [0x556fa444a897] vm.c:1778
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call0_body.constprop.141+0x1b7) [0x556fa444d437] vm_eval.c:127
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_call0+0xe6) [0x556fa444dd26] vm_eval.c:58
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_funcallv+0x2b) [0x556fa444e4ab] vm_eval.c:589
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_class_s_new+0x21) [0x556fa43472c1] object.c:2152
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_cfunc+0xee) [0x556fa443da7e] vm_insnhelper.c:1918
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_method+0xe3) [0x556fa444c543] vm_insnhelper.c:2381
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec_core+0x3589) [0x556fa4446e49] insns.def:915
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec+0x87) [0x556fa444a897] vm.c:1778
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_load_internal0+0xc4) [0x556fa4320464] load.c:611
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_require_internal+0x6d1) [0x556fa4322131] load.c:994
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_f_require+0x13) [0x556fa43223d3] load.c:1040
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_cfunc+0xee) [0x556fa443da7e] vm_insnhelper.c:1918
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_method+0xe3) [0x556fa444c543] vm_insnhelper.c:2381
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec_core+0x3589) [0x556fa4446e49] insns.def:915
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec+0x87) [0x556fa444a897] vm.c:1778
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_load_internal0+0xc4) [0x556fa4320464] load.c:611
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_require_internal+0x6d1) [0x556fa4322131] load.c:994
/usr/local/rbenv/versions/2.5.0/bin/ruby(rb_f_require_relative+0x3c) [0x556fa432246c] load.c:1040
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_cfunc+0xee) [0x556fa443da7e] vm_insnhelper.c:1918
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_call_method+0xe3) [0x556fa444c543] vm_insnhelper.c:2381
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec_core+0x3589) [0x556fa4446e49] insns.def:915
/usr/local/rbenv/versions/2.5.0/bin/ruby(vm_exec+0x87) [0x556fa444a897] vm.c:1778
/usr/local/rbenv/versions/2.5.0/bin/ruby(ruby_exec_internal+0xc4) [0x556fa42d3184] eval.c:246
/usr/local/rbenv/versions/2.5.0/bin/ruby(ruby_run_node+0x2f) [0x556fa42d77bf] eval.c:310
/usr/local/rbenv/versions/2.5.0/bin/ruby(main+0x4b) [0x556fa42d2c2b] ./include/ruby/intern.h:295

It does not happen always, but happened already multiple times (3-4 times) on my docker CI instance running my rails test suite (so I cannot reproduce it 100 %).

This never happened on ruby 2.4.3 (and before), so it might have something to do with 2.5.0.

Anybody knows what happening or how to further debug this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions