From: "vo.x (Vit Ondruch)" Date: 2021-12-09T15:53:16+00:00 Subject: [ruby-core:106604] [Ruby master Bug#18133] LTO: TestGCCompact#test_ast_compacts segfaults on i686 Issue #18133 has been updated by vo.x (Vit Ondruch). vo.x (Vit Ondruch) wrote in #note-5: > Thanks for looking into this. However, applying these two patches, while fixing i686, it breaks ppc64le :( > > ~~~ > [ 8890/21266] TestGCCompact#test_ast_compacts:213: [BUG] Couldn't unprotect page 0x0000000140f98000 > ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [powerpc64le-linux] > -- Control frame information ----------------------------------------------- Since I have the PPC at hand, here is the full backtrace: ~~~ $ make gdb-ruby TESTRUN_SCRIPT=test/ruby/test_gc_compact.rb RUNOPT0='-I.ext/powerpc64le-linux:tool/lib' ./revision.h unchanged Reading symbols from /builddir/build/BUILD/ruby-3.0.3/ruby... warning: File "/builddir/build/BUILD/ruby-3.0.3/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". To enable execution of this file add add-auto-load-safe-path /builddir/build/BUILD/ruby-3.0.3/.gdbinit line to your configuration file "/builddir/.config/gdb/gdbinit". To completely disable this security protection add set auto-load safe-path / line to your configuration file "/builddir/.config/gdb/gdbinit". For more information about this security protection see the "Auto-loading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Auto-loading safe path" Function "rb_assert_failure" not defined. Breakpoint 1 (rb_assert_failure) pending. Function "rb_bug" not defined. Breakpoint 2 (rb_bug) pending. Function "ruby_debug_breakpoint" not defined. Breakpoint 3 (ruby_debug_breakpoint) pending. warning: ./breakpoints.gdb: No such file or directory Download failed: No route to host. Continuing without debug info for /lib64/libc.so.6. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Download failed: No route to host. Continuing without debug info for /lib64/libz.so.1. Download failed: No route to host. Continuing without debug info for /lib64/libgmp.so.10. Download failed: No route to host. Continuing without debug info for /lib64/libcrypt.so.2. Download failed: No route to host. Continuing without debug info for /lib64/libm.so.6. Download failed: No route to host. Continuing without debug info for /lib64/libffi.so.6. Run options: --seed=62 # Running tests: [Detaching after vfork from child process 635] [1/8] TestGCCompact#test_ast_compacts Breakpoint 2, 0x00007ffff7b0be3c in rb_bug (fmt=0x7ffff7df85f8 "Couldn't unprotect page %p") at error.c:768 768 { Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34.9000-26.fc36.ppc64le gmp-6.2.1-1.fc36.ppc64le libffi-3.1-28.fc34.ppc64le libxcrypt-4.4.26-4.fc36.ppc64le zlib-1.2.11-30.fc35.ppc64le (gdb) bt #0 0x00007ffff7b0be3c in rb_bug (fmt=0x7ffff7df85f8 "Couldn't unprotect page %p") at error.c:768 #1 0x00007ffff7de15f0 in unlock_page_body (objspace=, body=0x1004f4000) at gc.c:4505 #2 gc_fill_swept_page (empty_slots=, freed_slots=, sweep_page=0x100055a90, heap=, objspace=) at gc.c:4780 #3 gc_page_sweep (sweep_page=0x100055a90, heap=0x100051528, objspace=) at gc.c:4955 #4 gc_sweep_step.isra.0 (objspace=0x100051500, heap=0x100051528) at gc.c:5100 #5 0x00007ffff7bbfb0c in gc_sweep_rest (objspace=) at gc.c:5153 #6 gc_sweep (objspace=0x100051500) at gc.c:5270 #7 0x00007ffff7bcba40 in gc_marks (full_mark=, objspace=0x100051500) at gc.c:7465 #8 gc_start (objspace=objspace@entry=0x100051500, reason=) at gc.c:8314 #9 0x00007ffff7bcbea0 in garbage_collect (objspace=objspace@entry=0x100051500, reason=reason@entry=238592) at gc.c:8202 #10 0x00007ffff7bcc528 in gc_start_internal (compact=20, immediate_sweep=20, immediate_mark=20, full_mark=20, self=4295821160, ec=0x100051bc0) at gc.c:8545 #11 gc_compact (ec=0x100051bc0, self=4295821160) at gc.c:9456 #12 0x00007ffff7d95444 in builtin_invoker0 (ec=, self=, argv=, funcptr=) at vm_insnhelper.c:5445 #13 0x00007ffff7d9fc8c in vm_exec_core (ec=0x100051bc0, initial=) at insns.def:1493 #14 0x00007ffff7dbc580 in rb_vm_exec (ec=0x100051bc0, mjit_enable_p=) at vm.c:2172 #15 0x00007ffff7da74c8 in invoke_block (captured=, captured=, opt_pc=, type=572653569, cref=0x0, self=4298277080, iseq=0x100418ba0, ec=0x100051bc0) at vm_insnhelper.c:400 #16 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x7fffffffc348, argc=1, self=4298277080, captured=, ec=0x100051bc0) at vm.c:1335 #17 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at vm.c:1353 #18 vm_yield (kw_splat=0, argv=0x7fffffffc348, argc=1, ec=0x100051bc0) at vm.c:1398 #19 rb_yield_0 (argv=0x7fffffffc348, argc=1) at vm_eval.c:1333 #20 rb_yield (val=) at vm_eval.c:1349 #21 0x00007ffff7b14944 in rb_ary_collect (ary=4300161960) at array.c:3635 #22 0x00007ffff7d87724 in ractor_safe_call_cfunc_0 (recv=, argc=, argv=, func=) at vm_insnhelper.c:2748 #23 0x00007ffff7d92470 in vm_call_cfunc_with_frame (ec=0x100051bc0, reg_cfp=0x7ffff74cfb40, calling=) at vm_insnhelper.c:2931 #24 0x00007ffff7d9792c in vm_sendish (ec=0x100051bc0, reg_cfp=0x7ffff74cfb40, cd=0x10042cc30, block_handler=, method_explorer=) at vm_callinfo.h:336 #25 0x00007ffff7d9efd0 in vm_exec_core (ec=0x100051bc0, initial=) at insns.def:770 #26 0x00007ffff7dbc580 in rb_vm_exec (ec=0x100051bc0, mjit_enable_p=) at vm.c:2172 #27 0x00007ffff7da74c8 in invoke_block (captured=, captured=, opt_pc=, type=572653569, cref=0x0, self=4298277080, iseq=0x10037e618, ec=0x100051bc0) at vm_insnhelper.c:400 #28 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x7fffffffcc38, argc=1, self=4298277080, captured=, ec=0x100051bc0) at vm.c:1335 #29 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at vm.c:1353 #30 vm_yield (kw_splat=0, argv=0x7fffffffcc38, argc=1, ec=0x100051bc0) at vm.c:1398 #31 rb_yield_0 (argv=0x7fffffffcc38, argc=1) at vm_eval.c:1333 #32 rb_yield (val=) at vm_eval.c:1349 #33 0x00007ffff7b145b4 in rb_ary_each (ary=) at array.c:2523 #34 rb_ary_each (ary=4300163800) at array.c:2517 #35 0x00007ffff7d87724 in ractor_safe_call_cfunc_0 (recv=, argc=, argv=, func=) at vm_insnhelper.c:2748 #36 0x00007ffff7d92470 in vm_call_cfunc_with_frame (ec=0x100051bc0, reg_cfp=0x7ffff74cfc58, calling=) at vm_insnhelper.c:2931 #37 0x00007ffff7d9792c in vm_sendish (ec=0x100051bc0, reg_cfp=0x7ffff74cfc58, cd=0x100278a90, block_handler=, method_explorer=) at vm_callinfo.h:336 #38 0x00007ffff7d9efd0 in vm_exec_core (ec=0x100051bc0, initial=) at insns.def:770 #39 0x00007ffff7dbc580 in rb_vm_exec (ec=0x100051bc0, mjit_enable_p=) at vm.c:2172 #40 0x00007ffff7da74c8 in invoke_block (captured=, captured=, opt_pc=, type=572653569, cref=0x0, self=4298277080, iseq=0x10043bb00, ec=0x100051bc0) at vm_insnhelper.c:400 #41 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x7fffffffd528, argc=1, self=4298277080, captured=, ec=0x100051bc0) at vm.c:1335 #42 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at vm.c:1353 #43 vm_yield (kw_splat=0, argv=0x7fffffffd528, argc=1, ec=0x100051bc0) at vm.c:1398 #44 rb_yield_0 (argv=0x7fffffffd528, argc=1) at vm_eval.c:1333 #45 rb_yield (val=) at vm_eval.c:1349 #46 0x00007ffff7b145b4 in rb_ary_each (ary=) at array.c:2523 #47 rb_ary_each (ary=4300164280) at array.c:2517 --Type for more, q to quit, c to continue without paging-- #48 0x00007ffff7d87724 in ractor_safe_call_cfunc_0 (recv=, argc=, argv=, func=) at vm_insnhelper.c:2748 #49 0x00007ffff7d92470 in vm_call_cfunc_with_frame (ec=0x100051bc0, reg_cfp=0x7ffff74cfde0, calling=) at vm_insnhelper.c:2931 #50 0x00007ffff7d9792c in vm_sendish (ec=0x100051bc0, reg_cfp=0x7ffff74cfde0, cd=0x100435660, block_handler=, method_explorer=) at vm_callinfo.h:336 #51 0x00007ffff7d9efd0 in vm_exec_core (ec=0x100051bc0, initial=) at insns.def:770 #52 0x00007ffff7dbc580 in rb_vm_exec (ec=0x100051bc0, mjit_enable_p=) at vm.c:2172 #53 0x00007ffff7dafab0 in invoke_block (captured=, captured=, opt_pc=, type=, cref=0x0, self=4298951640, iseq=0x10031b888, ec=0x100051bc0) at vm_insnhelper.c:400 #54 invoke_iseq_block_from_c (me=0x0, is_lambda=0, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x100329fd8, argc=0, self=4298951640, captured=, ec=0x100051bc0) at vm.c:1335 #55 invoke_block_from_c_proc (me=0x0, is_lambda=, passed_block_handler=0, kw_splat=0, argv=0x100329fd8, argc=0, self=4298951640, proc=, ec=0x100051bc0) at vm.c:1435 #56 vm_invoke_proc (ec=0x100051bc0, proc=, self=4298951640, argc=, argv=0x100329fd8, kw_splat=, passed_block_handler=0) at vm.c:1464 #57 0x00007ffff7dbd8f0 in rb_vm_invoke_proc (ec=, proc=, argc=, argv=, kw_splat=, passed_block_handler=) at vm.c:1485 #58 0x00007ffff7c9c2dc in rb_proc_call (self=, args=) at proc.c:986 #59 0x00007ffff7ba2650 in rb_call_end_proc (data=4298928280) at eval_jump.c:13 #60 0x00007ffff7b9bb24 in exec_end_procs_chain (procs=procs@entry=0x7ffff7f2a778 , errp=errp@entry=0x100051c38) at eval_jump.c:105 #61 0x00007ffff7b9bc18 in rb_ec_exec_end_proc (ec=ec@entry=0x100051bc0) at eval_jump.c:120 #62 0x00007ffff7b9bef8 in rb_ec_teardown (ec=ec@entry=0x100051bc0) at eval.c:175 #63 0x00007ffff7ba3458 in rb_ec_cleanup (ec=ec@entry=0x100051bc0, ex=) at eval.c:243 #64 0x00007ffff7ba3d98 in ruby_run_node (n=0x1002f0bb0) at eval.c:375 #65 0x0000000100010228 in main (argc=, argv=) at ./main.c:50 ~~~ ---------------------------------------- Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686 https://bugs.ruby-lang.org/issues/18133#change-95271 * Author: vo.x (Vit Ondruch) * Status: Assigned * Priority: Normal * ruby -v: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [i386-linux] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- I observe following segfault running the test suite on i686 on RHEL9: ~~~ $ gdb --args ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./test/runner.rb --excludes-dir=./test/excludes -v ... snip ... (gdb) handle SIGPIPE noprint nostop pass Signal Stop Print Pass to program Description SIGPIPE No No Yes Broken pipe (gdb) r ... snip ... [ 8347/20497] TestGBK#test_mbc_enc_len = 0.00 s [ 8348/20497] TestGBK#test_mbc_to_code = 0.00 s [ 8349/20497] TestGCCompact#test_ast_compacts--Type for more, q to quit, c to continue without paging-- Thread 1 "ruby" received signal SIGSEGV, Segmentation fault. 0xf7e33fe6 in rb_class_remove_from_super_subclasses (klass=) at /builddir/build/BUILD/ruby-3.0.2/class.c:96 96 RCLASS_EXT(entry->next->klass)->parent_subclasses = RCLASS_EXT(klass)->parent_subclasses; (gdb) bt #0 0xf7e33fe6 in rb_class_remove_from_super_subclasses (klass=) at /builddir/build/BUILD/ruby-3.0.2/class.c:96 #1 obj_free (obj=, objspace=0x5655ac30) at /builddir/build/BUILD/ruby-3.0.2/gc.c:3019 #2 gc_page_sweep (sweep_page=0x5a40e1f0, heap=0x5655ac48, objspace=0x5655ac30) at /builddir/build/BUILD/ruby-3.0.2/gc.c:4914 #3 gc_sweep_step.isra.0 (objspace=, heap=) at /builddir/build/BUILD/ruby-3.0.2/gc.c:5134 #4 0xf7ca3f09 in gc_sweep_rest (objspace=) at /builddir/build/BUILD/ruby-3.0.2/gc.c:5190 #5 gc_sweep (objspace=0x5655ac30) at /builddir/build/BUILD/ruby-3.0.2/gc.c:5313 #6 0xf7ca8250 in gc_marks (full_mark=, objspace=) at /builddir/build/BUILD/ruby-3.0.2/gc.c:7504 #7 gc_start (objspace=, reason=) at /builddir/build/BUILD/ruby-3.0.2/gc.c:8322 #8 0xf7ca8530 in garbage_collect (objspace=objspace@entry=0x5655ac30, reason=reason@entry=238592) at /builddir/build/BUILD/ruby-3.0.2/gc.c:8210 #9 0xf7caa723 in gc_start_internal (compact=2, immediate_sweep=2, immediate_mark=2, full_mark=2, self=1448715280, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/gc.c:8553 #10 gc_compact (ec=0x5655afac, self=1448715280) at /builddir/build/BUILD/ruby-3.0.2/gc.c:9468 #11 0xf7dfae3c in invoke_bf (argv=0x0, bf=, reg_cfp=, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:5583 #12 vm_invoke_builtin_delegate (ec=0x5655afac, cfp=, bf=, start_index=0) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:5607 #13 0xf7e0664c in vm_exec_core (ec=0x0, initial=1448732852) at /builddir/build/BUILD/ruby-3.0.2/insns.def:1482 #14 0xf7e1d0d5 in rb_vm_exec (ec=, mjit_enable_p=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2172 #15 0xf7e0c3c9 in invoke_block (captured=, captured=, opt_pc=, type=, cref=0x0, self=1450588460, iseq=0x5669174c, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:399 #16 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0xffffbf00, argc=1, self=1450588460, captured=, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1335 #17 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1353 #18 vm_yield (kw_splat=0, argv=0xffffbf00, argc=1, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1398 #19 rb_yield_0 (argv=0xffffbf00, argc=1) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1333 #20 rb_yield (val=) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1349 #21 0xf7c2ae74 in rb_ary_collect (ary=1503666180) at /builddir/build/BUILD/ruby-3.0.2/array.c:3635 #22 0xf7dfc835 in vm_call_cfunc_with_frame (ec=0x5655afac, reg_cfp=0xf77f6d70, calling=0xffffc004) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:2929 #23 0xf7dfdd31 in vm_sendish (ec=0x5655afac, reg_cfp=0xf77f6d70, cd=0x566c8f00, block_handler=4152323453, method_explorer=mexp_search_method) at /builddir/build/BUILD/ruby-3.0.2/vm_callinfo.h:336 #24 0xf7e0590a in vm_exec_core (ec=0x0, initial=1448732852) at /builddir/build/BUILD/ruby-3.0.2/insns.def:770 #25 0xf7e1d0d5 in rb_vm_exec (ec=, mjit_enable_p=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2172 #26 0xf7e0c3c9 in invoke_block (captured=, captured=, opt_pc=, type=, cref=0x0, self=1450588460, iseq=0x56691850, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:399 #27 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0xffffc2b0, argc=1, self=1450588460, captured=, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1335 #28 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1353 #29 vm_yield (kw_splat=0, argv=0xffffc2b0, argc=1, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1398 #30 rb_yield_0 (argv=0xffffc2b0, argc=1) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1333 #31 rb_yield (val=) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1349 #32 0xf7c2ac4a in rb_ary_each (ary=) at /builddir/build/BUILD/ruby-3.0.2/array.c:2523 #33 rb_ary_each (ary=1501058480) at /builddir/build/BUILD/ruby-3.0.2/array.c:2517 #34 0xf7dfc835 in vm_call_cfunc_with_frame (ec=0x5655afac, reg_cfp=0xf77f6dfc, calling=0xffffc474) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:2929 #35 0xf7e00602 in vm_call_method_each_type (ec=0x5655afac, cfp=0xf77f6dfc, calling=0xffffc474) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3419 #36 0xf7e00a46 in vm_call_refined (calling=, cfp=0xf77f6dfc, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3398 #37 vm_call_method_each_type (ec=0x5655afac, cfp=0xf77f6dfc, calling=) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3476 #38 0xf7dfdd31 in vm_sendish (ec=0x5655afac, reg_cfp=0xf77f6dfc, cd=0x5669f510, block_handler=4152323593, method_explorer=mexp_search_method) at /builddir/build/BUILD/ruby-3.0.2/vm_callinfo.h:336 #39 0xf7e0590a in vm_exec_core (ec=0x0, initial=1448732852) at /builddir/build/BUILD/ruby-3.0.2/insns.def:770 #40 0xf7e1d0d5 in rb_vm_exec (ec=, mjit_enable_p=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2172 #41 0xf7e0c3c9 in invoke_block (captured=, captured=, opt_pc=, type=, cref=0x0, self=1450588460, iseq=0x566900cc, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:399 #42 invoke_iseq_block_from_c (me=0x0, is_lambda=, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0xffffc720, argc=1, self=1450588460, captured=, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1335 #43 invoke_block_from_c_bh (force_blockarg=, is_lambda=, cref=, passed_block_handler=, kw_splat=, argv=, argc=, block_handler=, ec=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1353 #44 vm_yield (kw_splat=0, argv=0xffffc720, argc=1, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm.c:1398 #45 rb_yield_0 (argv=0xffffc720, argc=1) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1333 #46 rb_yield (val=) at /builddir/build/BUILD/ruby-3.0.2/vm_eval.c:1349 #47 0xf7c2ac4a in rb_ary_each (ary=) at /builddir/build/BUILD/ruby-3.0.2/array.c:2523 --Type for more, q to quit, c to continue without paging-- #48 rb_ary_each (ary=1501058920) at /builddir/build/BUILD/ruby-3.0.2/array.c:2517 #49 0xf7dfc835 in vm_call_cfunc_with_frame (ec=0x5655afac, reg_cfp=0xf77f6ec0, calling=0xffffc8e4) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:2929 #50 0xf7e00602 in vm_call_method_each_type (ec=0x5655afac, cfp=0xf77f6ec0, calling=0xffffc8e4) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3419 #51 0xf7e00a46 in vm_call_refined (calling=, cfp=0xf77f6ec0, ec=0x5655afac) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3398 #52 vm_call_method_each_type (ec=0x5655afac, cfp=0xf77f6ec0, calling=) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3476 #53 0xf7dfdd31 in vm_sendish (ec=0x5655afac, reg_cfp=0xf77f6ec0, cd=0x566cbca0, block_handler=4152323789, method_explorer=mexp_search_method) at /builddir/build/BUILD/ruby-3.0.2/vm_callinfo.h:336 #54 0xf7e0590a in vm_exec_core (ec=0x0, initial=1448732852) at /builddir/build/BUILD/ruby-3.0.2/insns.def:770 #55 0xf7e1d0d5 in rb_vm_exec (ec=, mjit_enable_p=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2172 #56 0xf7e1da4e in rb_iseq_eval (iseq=0x5657ad18) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2409 #57 0xf7cdb23e in load_iseq_eval (ec=0x5655afac, fname=) at /builddir/build/BUILD/ruby-3.0.2/load.c:594 #58 0xf7ce0ef8 in require_internal (ec=, fname=, exception=) at /builddir/build/BUILD/ruby-3.0.2/load.c:1065 #59 0xf7ce10ce in rb_require_string (fname=1448587920) at /builddir/build/BUILD/ruby-3.0.2/load.c:1142 #60 0xf7ce117c in rb_f_require_relative (obj=1448845900, fname=1448588380) at /builddir/build/BUILD/ruby-3.0.2/load.c:857 #61 0xf7dfc835 in vm_call_cfunc_with_frame (ec=0x5655afac, reg_cfp=0xf77f6fd8, calling=0xffffce04) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:2929 #62 0xf7e00602 in vm_call_method_each_type (ec=0x5655afac, cfp=0xf77f6fd8, calling=0xffffce04) at /builddir/build/BUILD/ruby-3.0.2/vm_insnhelper.c:3419 #63 0xf7dfdd31 in vm_sendish (ec=0x5655afac, reg_cfp=0xf77f6fd8, cd=0x56616828, block_handler=0, method_explorer=mexp_search_method) at /builddir/build/BUILD/ruby-3.0.2/vm_callinfo.h:336 #64 0xf7e04d92 in vm_exec_core (ec=0x0, initial=1448732852) at /builddir/build/BUILD/ruby-3.0.2/insns.def:789 #65 0xf7e1d0d5 in rb_vm_exec (ec=, mjit_enable_p=) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2172 #66 0xf7e1db19 in rb_iseq_eval_main (iseq=0x5657b63c) at /builddir/build/BUILD/ruby-3.0.2/vm.c:2420 #67 0xf7c91b99 in rb_ec_exec_node (ec=ec@entry=0x5655afac, n=n@entry=0x5657b63c) at /builddir/build/BUILD/ruby-3.0.2/eval.c:317 #68 0xf7c964fa in ruby_run_node (n=0x5657b63c) at /builddir/build/BUILD/ruby-3.0.2/eval.c:375 #69 0x56556143 in main (argc=, argv=) at ./main.c:50 ~~~ Unfortunately: 1) I don' have better reproducer then to run the whole test suite and even then it is not triggered always. I was not successful to hit the issue running just the single test case or the test file. 2) I have failed to reproduce this on CentOS Stream 9, which is surprising. Luckily, I can reproduce it on my system. This is seems to be related to LTO, because I have never faced such issue with LTO disabled. -- https://bugs.ruby-lang.org/ Unsubscribe: