larskanis/libusb

Segfault in `libusb_unref_device` on current master

larskanis opened this issue · 0 comments

This happens since commit 921f33e . libusb expects no calls to any context referencing function after the corresponding context was freed by libusb_exit. This is because many functions make some logging through the context and they don't check if the context is still valid.

The past way to enforce a valid context was so, that the LIBUSB::Context wasn't freed by the garbage collector, but only by an explicit call to LIBUSB::Context#exit. So the user had to ensure, that the context is freed and that it is done in the right order.

Unfortunatelly the ruby garbage collector doesn't free the objects in any particular order, so that most of the time the LIBUSB::Context is freed before some other depending objects. This leads to segfaults as below.

To fix this we need some way to ensure that libusb_exit is called only after all context depending objets have been freed. This is necessary to allow garbage collection of LIBUSB::Context objects.

libusb: debug [libusb_unref_device] destroy device 4.3
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb/device.rb:31: [BUG] Segmentation fault at 0x0000000000000000
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0020 p:---- s:0114 e:000113 CFUNC  :libusb_unref_device
c:0019 p:0005 s:0109 e:000108 METHOD /home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb/device.rb:31 [FINISH]
c:0018 p:---- s:0104 e:000103 CFUNC  :call
c:0017 p:0096 s:0101 e:000100 METHOD /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:120 [FINISH]
c:0016 p:---- s:0094 e:000093 CFUNC  :new
c:0015 p:0017 s:0088 e:000087 METHOD /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:253 [FINISH]
c:0014 p:---- s:0081 e:000080 CFUNC  :new
c:0013 p:0023 s:0076 e:000075 METHOD /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:26
c:0012 p:0067 s:0070 e:000069 BLOCK  /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:724 [FINISH]
c:0011 p:---- s:0064 e:000063 CFUNC  :map
c:0010 p:0016 s:0060 e:000059 METHOD /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:717
c:0009 p:0009 s:0054 e:000053 METHOD /home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:730
c:0008 p:0093 s:0048 e:000047 METHOD /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:196
c:0007 p:0006 s:0041 e:000039 METHOD ka_zcvdv_init.rb:28
c:0006 p:0010 s:0036 e:000035 METHOD /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:202
c:0005 p:0025 s:0031 e:000029 METHOD /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:287
c:0004 p:0048 s:0022 e:000021 METHOD /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:338
c:0003 p:0036 s:0016 e:000015 METHOD ka_zcvdv_init.rb:99
c:0002 p:0008 s:0006 e:000005 BLOCK  ka_zcvdv_init.rb:178 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
ka_zcvdv_init.rb:178:in `block (4 levels) in <main>'
ka_zcvdv_init.rb:99:in `run_perso'
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:338:in `personalize'
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:287:in `personalize_universal'
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:202:in `readers'
ka_zcvdv_init.rb:28:in `open_reader'
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/chipcoding-1.5.1/lib/chipcoding/app.rb:196:in `open_reader'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:730:in `by_name'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:717:in `by_names'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:717:in `map'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/grinsen_core.rb:724:in `block in by_names'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:26:in `open_with_param'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:26:in `new'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:253:in `initialize'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:253:in `new'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:120:in `initialize'
/home/local/COMCARD-NT/kanis/comcard/grinsen/lib/grinsen/target/pn53x.rb:120:in `call'
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb/device.rb:31:in `unref_device'
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb/device.rb:31:in `libusb_unref_device'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 3

-- Machine register context ------------------------------------------------
 RIP: 0x00007d34c9786484 RBP: 0x0000000000000004 RSP: 0x00007d34c8d3cdc0
 RAX: 0xddb97ec6df0f11e4 RBX: 0x00007d34b4046e50 RCX: 0x0000000000000037
 RDX: 0x00007d34c8d3cde0 RDI: 0x00007d34b4046e50 RSI: 0x0000000000000004
  R8: 0x0000000000000000  R9: 0x0000000000000000 R10: 0x00007d34e540d898
 R11: 0x0000000000000293 R12: 0x00007d34c979509f R13: 0x00007d34c8d3d230
 R14: 0x0000000000000024 R15: 0x00007d34c8d3cde0 EFL: 0x0000000000010286

-- C level backtrace information -------------------------------------------
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_print_backtrace+0x14) [0x7d34e5b4b6c3] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_dump.c:820
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_bugreport) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_dump.c:1151
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_bug_for_fatal_signal+0x104) [0x7d34e593c2a4] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/error.c:1065
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(sigsegv+0x51) [0x7d34e5a933a1] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/signal.c:926
/lib/x86_64-linux-gnu/libc.so.6(0x7d34e5442990) [0x7d34e5442990]
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb-1.0.so(log_v+0x1c4) [0x7d34c9786484] /home/local/COMCARD-NT/kanis/comcard/libusb/ext/tmp/x86_64-linux-gnu/ports/libusb/1.0.27/libusb-1.0.27/libusb/core.c:2843
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb-1.0.so(usbi_log+0x8e) [0x7d34c9786b5e] /home/local/COMCARD-NT/kanis/comcard/libusb/ext/tmp/x86_64-linux-gnu/ports/libusb/1.0.27/libusb-1.0.27/libusb/core.c:2853
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb-1.0.so(libusb_unref_device+0x28) [0x7d34c9786f68] /home/local/COMCARD-NT/kanis/comcard/libusb/ext/tmp/x86_64-linux-gnu/ports/libusb/1.0.27/libusb-1.0.27/libusb/core.c:1299
/home/local/COMCARD-NT/kanis/comcard/libusb/lib/libusb-1.0.so(libusb_unref_device) /home/local/COMCARD-NT/kanis/comcard/libusb/ext/tmp/x86_64-linux-gnu/ports/libusb/1.0.27/libusb-1.0.27/libusb/core.c:1288
/lib/x86_64-linux-gnu/libffi.so.8(0x7d34cb89a8b6) [0x7d34cb89a8b6]
/lib/x86_64-linux-gnu/libffi.so.8(0x7d34cb89734d) [0x7d34cb89734d]
/lib/x86_64-linux-gnu/libffi.so.8(ffi_call+0x123) [0x7d34cb899f33]
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/ffi-1.16.3/lib/ffi_c.so(rbffi_CallFunction+0x1b2) [0x7d34c97e9542] /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/ffi-1.16.3/ext/ffi_c/Call.c:400
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/ffi-1.16.3/lib/ffi_c.so(rbffi_CallFunction) (null):0
/home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/ffi-1.16.3/lib/ffi_c.so(custom_trampoline+0x36) [0x7d34c97ed6a6] /home/local/COMCARD-NT/kanis/.rvm/gems/ruby-3.3.0/gems/ffi-1.16.3/ext/ffi_c/MethodHandle.c:222
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0xd9) [0x7d34e5b1ca4c] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3490
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3518
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_sendish+0xac) [0x7d34e5b2e5d5] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:5581
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_core) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/insns.def:834
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_exec+0x189) [0x7d34e5b348a9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2486
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_call_kw+0x13b) [0x7d34e5b3de2b] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:110
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_method_call_with_block_kw+0x82) [0x7d34e5a2a442] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/proc.c:2472
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_cfunc_with_frame+0xd7) [0x7d34e5b3a73f] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:173
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_cfunc) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:187
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_body) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:233
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_cc+0xfa) [0x7d34e5b3b50a] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:110
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_call0+0x47) [0x7d34e5b2dc98] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:70
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_call_kw) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:330
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_check_funcall_default_kw) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:713
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_check_funcall) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:689
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(run_finalizer+0x183) [0x7d34e595c683] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4409
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_multi_ractor_p+0x0) [0x7d34e595c96f] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4475
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_lock_enter) ./vm_sync.h:74
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(finalize_list) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4491
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(finalize_deferred_heap_pages) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4518
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(finalize_deferred+0x20) [0x7d34e595ca85] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4527
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(gc_finalize_deferred) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/gc.c:4537
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_postponed_job_flush+0x1e1) [0x7d34e5b50a41] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_trace.c:1847
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_threadptr_execute_interrupts+0x499) [0x7d34e5adf0a9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/thread.c:2415
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_check_ints+0xb) [0x7d34e5b1ef56] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_core.h:2083
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_check_ints) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_core.h:2074
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_pop_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:419
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_pop_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:428
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_handle_exception) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2721
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_loop+0xc) [0x7d34e5b34913] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2509
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_exec) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2492
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_cc+0xfa) [0x7d34e5b3b50a] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:110
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_call+0x32) [0x7d34e5b3d516] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:899
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_funcallv_kw) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:1092
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_class_new_instance_pass_kw+0x52) [0x7d34e59e32f2] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/object.c:2131
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0xd9) [0x7d34e5b1ca4c] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3490
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3518
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_sendish+0xac) [0x7d34e5b2e5d5] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:5581
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_core) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/insns.def:834
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_exec+0x189) [0x7d34e5b348a9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2486
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call0_cc+0xfa) [0x7d34e5b3b50a] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:110
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_call+0x32) [0x7d34e5b3d516] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:899
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_funcallv_kw) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:1092
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_class_new_instance_pass_kw+0x52) [0x7d34e59e32f2] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/object.c:2131
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_cfp_consistent_p+0x0) [0x7d34e5b1cda9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3490
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame_) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3492
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3518
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_other) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3544
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_sendish+0xac) [0x7d34e5b2e5d5] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:5581
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_core) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/insns.def:834
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_exec+0x189) [0x7d34e5b348a9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2486
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_yield_with_cref+0x42) [0x7d34e5b39fe8] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:1634
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_yield) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:1642
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_yield_0) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:1366
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_yield) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_eval.c:1382
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_ary_collect+0x5c) [0x7d34e588b61c] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/array.c:3630
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0xd9) [0x7d34e5b1ca4c] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3490
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_call_cfunc_with_frame) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:3518
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_sendish+0x160) [0x7d34e5b233b0] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm_insnhelper.c:5581
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(vm_exec_core+0x26c0) [0x7d34e5b30b60] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/insns.def:814
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_exec+0x189) [0x7d34e5b348a9] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:2486
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(rb_vm_invoke_proc+0x66) [0x7d34e5b3a5f6] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/vm.c:1728
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(thread_do_start_proc+0x330) [0x7d34e5ae1840] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/thread.c:592
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(thread_do_start+0x12) [0x7d34e5ae1c2a] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/thread.c:611
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(thread_start_func_2) /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/thread.c:667
/home/local/COMCARD-NT/kanis/.rvm/rubies/ruby-3.3.0/lib/libruby.so.3.3(nt_start+0x1ca) [0x7d34e5ae2a2a] /home/local/COMCARD-NT/kanis/.rvm/src/ruby-3.3.0/thread_pthread.c:2186
/lib/x86_64-linux-gnu/libc.so.6(start_thread+0x2ea) [0x7d34e5497b5a] ./nptl/pthread_create.c:444
/lib/x86_64-linux-gnu/libc.so.6(clone3+0x2c) [0x7d34e55285fc] ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
/lib/x86_64-linux-gnu/libc.so.6(__GI___clone3) (null):0
/lib/x86_64-linux-gnu/libc.so.6(__clone3) (null):0