Project

General

Profile

Actions

Bug #16810

open

ruby segfaults on s390x with musl libc

Added by ncopa (Natanael Copa) almost 4 years ago. Updated about 3 years ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [s390x-linux-musl]
[ruby-core:98029]

Description

When trying to build mruby-2.1.0 ruby segfaults when running ruby ./minirake -v.

I was able to get a backtrace with gdb:

Program received signal SIGSEGV, Segmentation fault.                                                                    
vm_call_cfunc_with_frame (empty_kw_splat=0, cd=0x2aa0009f108, calling=<optimized out>, reg_cfp=0x3fffd9fea70, 
    ec=0x3fffb8d45e8) at vm_insnhelper.c:2505                                                                           
2505    vm_insnhelper.c: No such file or directory.
(gdb) bt
#0  vm_call_cfunc_with_frame (empty_kw_splat=0, cd=0x2aa0009f108, calling=<optimized out>, reg_cfp=0x3fffd9fea70, 
    ec=0x3fffb8d45e8) at vm_insnhelper.c:2505
#1  vm_call_cfunc (ec=0x3fffb8d45e8, reg_cfp=0x3fffd9fea70, calling=<optimized out>, cd=0x2aa0009f108)
    at vm_insnhelper.c:2539
#2  0x000003fffdd79578 in vm_call_method (ec=0x3fffb8d45e8, cfp=0x3fffd9fea70, calling=0x3ffffffb028, cd=0x2aa00583490)
    at vm_insnhelper.c:3026
#3  0x000003fffdd5e452 in vm_sendish (ec=0x3fffb8d45e8, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fea70, 
    cd=0x2aa00583490, block_handler=block_handler@entry=0, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#4  0x000003fffdd6e0a2 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:801
#5  0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#6  0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa00585f50, 
    self=self@entry=2929175261440, cref=cref@entry=0x0, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#7  0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, 
    passed_block_handler=4398011476064, kw_splat=-17920, argv=0x3ffffffb5b8, argc=1, self=2929175261440, 
    captured=0x3fffd9feb30, ec=0x2aa00002a50) at vm.c:1116
#8  invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=argc@entry=1, 
    argv=argv@entry=0x3ffffffb5b8, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x0, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#9  0x000003fffdd73152 in vm_yield (kw_splat=0, argv=0x3ffffffb5b8, argc=1, ec=0x2aa00002a50) at vm.c:1179
#10 rb_yield_0 (argc=argc@entry=1, argv=argv@entry=0x3ffffffb5b8) at vm_eval.c:1227
#11 0x000003fffdd73184 in rb_yield_1 (val=<optimized out>) at vm_eval.c:1233
#12 0x000003fffdd731bc in rb_yield (val=<optimized out>) at vm_eval.c:1243
#13 0x000003fffdbbb6a0 in rb_ary_each (ary=2929175260720) at array.c:2135
#14 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x2aa0008e678, 
    calling=<optimized out>, reg_cfp=0x3fffd9feae0, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#15 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9feae0, calling=<optimized out>, cd=0x2aa0008e678)
    at vm_insnhelper.c:2539
#16 0x000003fffdd79578 in vm_call_method (ec=0x2aa00002a50, cfp=0x3fffd9feae0, calling=0x3ffffffb8e8, cd=0x2aa00583aa0)
    at vm_insnhelper.c:3026
#17 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9feae0, 
    cd=cd@entry=0x2aa00583aa0, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#18 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#19 0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#20 0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa00586180, 
    self=self@entry=2929173767640, cref=cref@entry=0x0, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#21 0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, 
    passed_block_handler=4398011476064, kw_splat=-15680, argv=0x3ffffffbe78, argc=1, self=2929173767640, 
    captured=0x3fffd9febd8, ec=0x2aa00002a50) at vm.c:1116
#22 invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=argc@entry=1, 
    argv=argv@entry=0x3ffffffbe78, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x0, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#23 0x000003fffdd73152 in vm_yield (kw_splat=0, argv=0x3ffffffbe78, argc=1, ec=0x2aa00002a50) at vm.c:1179
#24 rb_yield_0 (argc=argc@entry=1, argv=argv@entry=0x3ffffffbe78) at vm_eval.c:1227
#25 0x000003fffdd73184 in rb_yield_1 (val=<optimized out>) at vm_eval.c:1233
#26 0x000003fffdd731bc in rb_yield (val=<optimized out>) at vm_eval.c:1243
#27 0x000003fffdbbe7aa in rb_ary_collect (ary=2929173762560) at array.c:3065
#28 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x2aa0008e678, 
    calling=<optimized out>, reg_cfp=0x3fffd9febc0, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#29 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9febc0, calling=<optimized out>, cd=0x2aa0008e678)
    at vm_insnhelper.c:2539
#30 0x000003fffdd79578 in vm_call_method (ec=0x2aa00002a50, cfp=0x3fffd9febc0, calling=0x3ffffffc1a8, cd=0x2aa00596980)
    at vm_insnhelper.c:3026
#31 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9febc0, 
    cd=cd@entry=0x2aa00596980, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#32 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#33 0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#34 0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa00585460, 
    self=self@entry=2929173439960, cref=cref@entry=0x0, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#35 0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, 
    passed_block_handler=4398008493928, kw_splat=-13696, argv=0x3ffffffc738, argc=1, self=2929173439960, 
    captured=0x3fffd9fec80, ec=0x2aa00002a50) at vm.c:1116
#36 invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=argc@entry=1, 
    argv=argv@entry=0x3ffffffc738, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x0, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#37 0x000003fffdd73152 in vm_yield (kw_splat=0, argv=0x3ffffffc738, argc=1, ec=0x2aa00002a50) at vm.c:1179
#38 rb_yield_0 (argc=argc@entry=1, argv=argv@entry=0x3ffffffc738) at vm_eval.c:1227
#39 0x000003fffdd73184 in rb_yield_1 (val=<optimized out>) at vm_eval.c:1233
#40 0x000003fffdd731bc in rb_yield (val=<optimized out>) at vm_eval.c:1243
#41 0x000003fffdbbb6a0 in rb_ary_each (ary=2929173764040) at array.c:2135
#42 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x3fffddc49c8, 
    calling=<optimized out>, reg_cfp=0x3fffd9fec68, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#43 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fec68, calling=<optimized out>, cd=0x3fffddc49c8)
    at vm_insnhelper.c:2539
#44 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fec68, 
    cd=cd@entry=0x2aa005a0270, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#45 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#46 0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#47 0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa005854b0, 
    self=self@entry=2929173439960, cref=cref@entry=0x0, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#48 0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, 
    passed_block_handler=4393751543814, kw_splat=-11712, argv=0x3ffffffcef8, argc=1, self=2929173439960, 
    captured=0x3fffd9fed28, ec=0x2aa00002a50) at vm.c:1116
#49 invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=argc@entry=1, 
    argv=argv@entry=0x3ffffffcef8, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x0, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#50 0x000003fffdd73152 in vm_yield (kw_splat=0, argv=0x3ffffffcef8, argc=1, ec=0x2aa00002a50) at vm.c:1179
#51 rb_yield_0 (argc=argc@entry=1, argv=argv@entry=0x3ffffffcef8) at vm_eval.c:1227
#52 0x000003fffdd73184 in rb_yield_1 (val=<optimized out>) at vm_eval.c:1233
#53 0x000003fffdd731bc in rb_yield (val=<optimized out>) at vm_eval.c:1243
#54 0x000003fffdbbb6a0 in rb_ary_each (ary=2929173439920) at array.c:2135
#55 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x72720f9fffc06371, 
    calling=<optimized out>, reg_cfp=0x3fffd9fecd8, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#56 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fecd8, calling=<optimized out>, cd=0x72720f9fffc06371)
    at vm_insnhelper.c:2539
#57 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fecd8, 
    cd=cd@entry=0x2aa0058b2c0, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#58 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#59 0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#60 0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa003d72f8, 
    self=self@entry=2929171614160, cref=cref@entry=0x2aa003d5278, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#61 0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x2aa003d5278, 
    passed_block_handler=2929171614160, kw_splat=5743888, argv=0x3ffffffd6f8, argc=1, self=2929171614160, 
    captured=0x3ffffffd630, ec=0x2aa00002a50) at vm.c:1116
#62 invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=<optimized out>, 
    argv=0x3ffffffd6f8, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x2aa003d5278, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#63 0x000003fffdd72f2c in vm_yield_with_cref (is_lambda=<optimized out>, cref=0x2aa003d5278, kw_splat=<optimized out>, 
    argv=<optimized out>, argc=<optimized out>, ec=0x2aa00002a50) at vm.c:1171
#64 yield_under (under=under@entry=2929173439760, self=2929171614160, argc=<optimized out>, argc@entry=1, 
    argv=<optimized out>, argv@entry=0x3ffffffd6f8, kw_splat=<optimized out>, kw_splat@entry=3) at vm_eval.c:1879
#65 0x000003fffdd7a0a4 in specific_eval (argc=argc@entry=0, argv=argv@entry=0x3fffd8ff1c0, klass=2929173439760, 
    self=<optimized out>, self@entry=2929171614160, kw_splat=kw_splat@entry=3) at vm_eval.c:1920
#66 0x000003fffdd7a2a0 in rb_obj_instance_eval_internal (argc=<optimized out>, argv=0x3fffd8ff1c0, self=2929171614160)
    at vm_eval.c:1993
#67 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x0, calling=<optimized out>, 
    reg_cfp=0x3fffd9fedf0, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#68 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fedf0, calling=<optimized out>, cd=0x0) at vm_insnhelper.c:2539
#69 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fedf0, 
    cd=cd@entry=0x2aa00480360, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#70 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#71 0x000003fffdd71fc8 in rb_vm_exec (ec=ec@entry=0x2aa00002a50, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#72 0x000003fffdd72810 in invoke_block (ec=ec@entry=0x2aa00002a50, iseq=iseq@entry=0x2aa003e9f70, 
    self=self@entry=2929172774640, cref=cref@entry=0x0, type=572653569, opt_pc=0, captured=<optimized out>)
    at vm.c:1044
#73 0x000003fffdd729a8 in invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, 
    passed_block_handler=4398011476064, kw_splat=224568, argv=0x3ffffffded8, argc=2, self=2929172774640, 
    captured=0x3fffd9fee78, ec=0x2aa00002a50) at vm.c:1116
#74 invoke_block_from_c_bh (ec=ec@entry=0x2aa00002a50, block_handler=<optimized out>, argc=argc@entry=2, 
    argv=argv@entry=0x3ffffffded8, kw_splat=kw_splat@entry=0, passed_block_handler=0, cref=0x0, 
    is_lambda=<optimized out>, force_blockarg=0) at vm.c:1134
#75 0x000003fffdd73152 in vm_yield (kw_splat=0, argv=0x3ffffffded8, argc=2, ec=0x2aa00002a50) at vm.c:1179
#76 rb_yield_0 (argc=<optimized out>, argv=argv@entry=0x3ffffffded8) at vm_eval.c:1227
#77 0x000003fffdd732c2 in rb_yield_values2 (argc=argc@entry=2, argv=argv@entry=0x3ffffffded8) at vm_eval.c:1273
#78 0x000003fffdc4175e in each_pair_i_fast (key=<optimized out>, value=<optimized out>, _=<optimized out>)
    at hash.c:3057
#79 0x000003fffdc42eb2 in hash_ar_foreach_iter (error=0, argp=4398046503384, value=<optimized out>, 
    key=<optimized out>) at hash.c:1337
#80 ar_foreach_check (func=<optimized out>, never=52, arg=4398046503384, hash=2929171613960) at hash.c:962
#81 hash_foreach_call (arg=4398046503384) at hash.c:1485
#82 0x000003fffdc252dc in rb_ensure (b_proc=0x3fffdc2531e <rb_ensure+342>, 
    b_proc@entry=0x3fffdc42de8 <hash_foreach_call>, data1=4398046503160, data1@entry=4398046503384, 
    e_proc=e_proc@entry=0x3fffdc41008 <hash_foreach_ensure>, data2=data2@entry=2929171613960) at eval.c:1129
#83 0x000003fffdc44be2 in rb_hash_foreach (farg=0, func=0x3fffdc41720 <each_pair_i_fast>, hash=2929171613960)
    at hash.c:1509
#84 rb_hash_foreach (hash=2929171613960, func=0x3fffdc41720 <each_pair_i_fast>, farg=0) at hash.c:1499
#85 0x000003fffdc455e2 in rb_hash_each_pair (hash=<optimized out>) at hash.c:3088
#86 rb_hash_each_pair (hash=2929171613960) at hash.c:3084
#87 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x3fffdfa4828, 
    calling=<optimized out>, reg_cfp=0x3fffd9fee60, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#88 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fee60, calling=<optimized out>, cd=0x3fffdfa4828)
    at vm_insnhelper.c:2539
#89 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fee60, 
    cd=cd@entry=0x2aa00477d80, block_handler=<optimized out>, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#90 0x000003fffdd701c8 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:782
#91 0x000003fffdd71fc8 in rb_vm_exec (ec=<optimized out>, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#92 0x000003fffdd7a5fa in rb_iseq_eval (iseq=iseq@entry=0x2aa003d7348) at vm.c:2168
#93 0x000003fffdc6907a in load_iseq_eval (ec=0x2aa00002a50, fname=2929171806840) at load.c:585
#94 0x000003fffdc692d0 in rb_load_internal (fname=<optimized out>, wrap=<optimized out>) at load.c:643
#95 0x000003fffdc69fce in rb_f_load (argc=<optimized out>, argv=<optimized out>, _=<optimized out>) at load.c:701
#96 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x2aa000bce88, 
    calling=<optimized out>, reg_cfp=0x3fffd9fef08, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#97 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fef08, calling=<optimized out>, cd=0x2aa000bce88)
    at vm_insnhelper.c:2539
#98 0x000003fffdd79578 in vm_call_method (ec=0x2aa00002a50, cfp=0x3fffd9fef08, calling=0x3ffffffec10, cd=0x2aa004c67f0)
    at vm_insnhelper.c:3026
#99 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fef08, 
    cd=0x2aa004c67f0, block_handler=block_handler@entry=0, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#100 0x000003fffdd6e0a2 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:801
#101 0x000003fffdd71fc8 in rb_vm_exec (ec=<optimized out>, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#102 0x000003fffdd7a5fa in rb_iseq_eval (iseq=iseq@entry=0x2aa0006f228) at vm.c:2168
#103 0x000003fffdc6907a in load_iseq_eval (ec=0x2aa00002a50, fname=2929169827160) at load.c:585
#104 0x000003fffdc692d0 in rb_load_internal (fname=<optimized out>, wrap=<optimized out>) at load.c:643
#105 0x000003fffdc69fce in rb_f_load (argc=<optimized out>, argv=<optimized out>, _=<optimized out>) at load.c:701
#106 0x000003fffdd6376a in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x2aa000bce88, 
    calling=<optimized out>, reg_cfp=0x3fffd9fef78, ec=0x2aa00002a50) at vm_insnhelper.c:2514
#107 vm_call_cfunc (ec=0x2aa00002a50, reg_cfp=0x3fffd9fef78, calling=<optimized out>, cd=0x2aa000bce88)
    at vm_insnhelper.c:2539
#108 0x000003fffdd79578 in vm_call_method (ec=0x2aa00002a50, cfp=0x3fffd9fef78, calling=0x3fffffff400, 
    cd=0x2aa0045d590) at vm_insnhelper.c:3026
#109 0x000003fffdd5e452 in vm_sendish (ec=0x2aa00002a50, 
    ec@entry=<error reading variable: value has been optimized out>, reg_cfp=reg_cfp@entry=0x3fffd9fef78, 
    cd=0x2aa0045d590, block_handler=block_handler@entry=0, 
    method_explorer=method_explorer@entry=0x3fffdd66568 <vm_search_method_wrap>) at vm_insnhelper.c:4023
#110 0x000003fffdd6e0a2 in vm_exec_core (ec=<optimized out>, ec@entry=0x0, initial=initial@entry=0) at insns.def:801
#111 0x000003fffdd71fc8 in rb_vm_exec (ec=<optimized out>, mjit_enable_p=mjit_enable_p@entry=1) at vm.c:1929
#112 0x000003fffdd7a6d2 in rb_iseq_eval_main (iseq=iseq@entry=0x0) at vm.c:2179
#113 0x000003fffdc22672 in rb_ec_exec_node (ec=ec@entry=0x2aa00002a50, n=n@entry=0x2aa0007d418) at eval.c:278
#114 0x000003fffdc26f5c in ruby_run_node (n=0x2aa0007d418) at eval.c:336
#115 0x000002aa00000994 in main (argc=<optimized out>, argv=<optimized out>) at ./main.c:50

This ruby build was built with libucontext, and ruby's testsuite passed (which it didn't with --with-coroutines=copy. see #16809)

Updated by xtkoba (Tee KOBAYASHI) about 3 years ago

I cannot reproduce this issue with mruby-2.1.0 + ruby-2.7.1p83 on my QEMU user emulated environment.

Is it still reproducible with the latest toolchain and libucontext? Of course it might be a case that it reproduces only on native environments, which I do not have access to.

Actions

Also available in: Atom PDF

Like0
Like0