-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
https://github.com/mmtk/mmtk-ruby/actions/runs/15976163425/job/45059082124?pr=130
A test case failed with the following message:
2025-06-30T14:58:32.7095761Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:139: [BUG] Segmentation fault at 0x0000000000000048
2025-06-30T14:58:32.7185674Z ruby 3.5.0dev (2025-06-30T14:40:46Z :detached: da26980bf0) +PRISM +MMTk(Immix) [x86_64-linux]
2025-06-30T14:58:32.7186346Z
2025-06-30T14:58:32.7186792Z -- Control frame information -----------------------------------------------
2025-06-30T14:58:32.7187827Z c:0020 p:0004 s:0143 e:000141 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:139
2025-06-30T14:58:32.7189032Z c:0019 p:0009 s:0135 e:000134 BLOCK /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:769
2025-06-30T14:58:32.7190683Z c:0018 p:0032 s:0132 e:000131 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:447
2025-06-30T14:58:32.7191891Z c:0017 p:0018 s:0123 e:000122 BLOCK /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:768
2025-06-30T14:58:32.7193047Z c:0016 p:0115 s:0114 E:0014c0 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:252
2025-06-30T14:58:32.7194230Z c:0015 p:0012 s:0104 E:002480 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:766
2025-06-30T14:58:32.7195616Z c:0014 p:0188 s:0096 E:000fe8 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/test/ruby/test_pattern_matching.rb:1200
2025-06-30T14:58:32.7196761Z c:0013 p:0037 s:0091 e:000090 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/testcase.rb:202
2025-06-30T14:58:32.7197886Z c:0012 p:0052 s:0085 e:000084 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/testcase.rb:170
2025-06-30T14:58:32.7199003Z c:0011 p:0093 s:0076 e:000075 BLOCK /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1683 [FINISH]
2025-06-30T14:58:32.7199737Z c:0010 p:---- s:0069 e:000068 CFUNC :map
2025-06-30T14:58:32.7200408Z c:0009 p:0114 s:0065 e:000064 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1670
2025-06-30T14:58:32.7201418Z c:0008 p:0035 s:0053 e:000052 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1374
2025-06-30T14:58:32.7202492Z c:0007 p:0069 s:0046 E:001dd0 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:52
2025-06-30T14:58:32.7203643Z c:0006 p:0007 s:0030 e:000029 BLOCK /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:24 [FINISH]
2025-06-30T14:58:32.7204613Z c:0005 p:---- s:0026 e:000025 CFUNC :map
2025-06-30T14:58:32.7205370Z c:0004 p:0005 s:0022 e:000021 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:23
2025-06-30T14:58:32.7206527Z c:0003 p:0210 s:0016 E:000b80 METHOD /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:122
2025-06-30T14:58:32.7207695Z c:0002 p:0062 s:0006 E:001eb0 EVAL /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:220 [FINISH]
2025-06-30T14:58:32.7208514Z c:0001 p:0000 s:0003 E:000590 DUMMY [FINISH]
2025-06-30T14:58:32.7208786Z
2025-06-30T14:58:32.7209079Z -- Ruby level backtrace information ----------------------------------------
2025-06-30T14:58:32.7209942Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:220:in '<main>'
2025-06-30T14:58:32.7210947Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:122:in 'run'
2025-06-30T14:58:32.7211972Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:23:in '_run_suites'
2025-06-30T14:58:32.7212965Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:23:in 'map'
2025-06-30T14:58:32.7214034Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:24:in 'block in _run_suites'
2025-06-30T14:58:32.7215845Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb:52:in '_run_suite'
2025-06-30T14:58:32.7216805Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1374:in '_run_suite'
2025-06-30T14:58:32.7217686Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1670:in '_run_suite'
2025-06-30T14:58:32.7218560Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1670:in 'map'
2025-06-30T14:58:32.7219518Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit.rb:1683:in 'block in _run_suite'
2025-06-30T14:58:32.7220518Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/testcase.rb:170:in 'run'
2025-06-30T14:58:32.7221521Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/testcase.rb:202:in 'run_test'
2025-06-30T14:58:32.7222631Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/test/ruby/test_pattern_matching.rb:1200:in 'test_hash_pattern'
2025-06-30T14:58:32.7224021Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:766:in 'assert_syntax_error'
2025-06-30T14:58:32.7225417Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:252:in 'prepare_syntax_check'
2025-06-30T14:58:32.7226716Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:768:in 'block in assert_syntax_error'
2025-06-30T14:58:32.7227961Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:447:in 'assert_raise'
2025-06-30T14:58:32.7229260Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/assertions.rb:769:in 'block (2 levels) in assert_syntax_error'
2025-06-30T14:58:32.7230572Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/core_assertions.rb:139:in 'syntax_check'
2025-06-30T14:58:32.7231201Z
2025-06-30T14:58:32.7231506Z -- Threading information ---------------------------------------------------
2025-06-30T14:58:32.7232093Z Total ractor count: 1
2025-06-30T14:58:32.7232451Z Ruby thread count for this ractor: 4
2025-06-30T14:58:32.7232725Z
2025-06-30T14:58:32.7233016Z -- Machine register context ------------------------------------------------
2025-06-30T14:58:32.7233745Z RIP: 0x00005596b11e860f RBP: 0x0000000000000000 RSP: 0x00007ffee87c1640
2025-06-30T14:58:32.7234573Z RAX: 0x0000000000000000 RBX: 0x000010a100100001 RCX: 0x0000000000000000
2025-06-30T14:58:32.7235251Z RDX: 0x00000201019ecb10 RDI: 0x000010a100100001 RSI: 0x0000000000000000
2025-06-30T14:58:32.7235926Z R8: 0x00000200ffd349c8 R9: 0x00000201014db9e8 R10: 0x00005596dd8ef590
2025-06-30T14:58:32.7236596Z R11: 0x00000200ffd47ef0 R12: 0x00007f0933315bb0 R13: 0x0000000000000001
2025-06-30T14:58:32.7237272Z R14: 0x0000000000000000 R15: 0x00000000000010a1 EFL: 0x0000000000010246
2025-06-30T14:58:32.7237687Z
2025-06-30T14:58:32.7237983Z -- C level backtrace information -------------------------------------------
2025-06-30T14:58:33.3690208Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_print_backtrace+0x8) [0x5596b1450722] ../vm_dump.c:847
2025-06-30T14:58:33.3691639Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_vm_bugreport) ../vm_dump.c:1179
2025-06-30T14:58:33.3692979Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_bug_for_fatal_signal+0x107) [0x5596b1407487] ../error.c:1146
2025-06-30T14:58:33.3694369Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(sigsegv+0x46) [0x5596b1148f86] ../signal.c:936
2025-06-30T14:58:33.3695608Z /lib/x86_64-linux-gnu/libc.so.6(0x7f0933045330) [0x7f0933045330]
2025-06-30T14:58:33.3696676Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_search_cc+0x34) [0x5596b11e860f] ../internal/class.h:463
2025-06-30T14:58:33.3698035Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_vm_search_method_slowpath) ../vm_insnhelper.c:2165
2025-06-30T14:58:33.3699481Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_search_method_slowpath0+0x5) [0x5596b11e901a] ../vm_insnhelper.c:2185
2025-06-30T14:58:33.3700916Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_search_method_fastpath) ../vm_insnhelper.c:2246
2025-06-30T14:58:33.3702208Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_sendish) ../vm_insnhelper.c:5976
2025-06-30T14:58:33.3703427Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_core+0x84) [0x5596b1201794] ../insns.def:899
2025-06-30T14:58:33.3704910Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_loop+0x38) [0x5596b11f28e8] ../vm.c:2667
2025-06-30T14:58:33.3706087Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_vm_exec) ../vm.c:2646
2025-06-30T14:58:33.3707240Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_yield_with_cref+0x4e) [0x5596b11f7334] ../vm.c:1713
2025-06-30T14:58:33.3708393Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_yield) ../vm.c:1721
2025-06-30T14:58:33.3709392Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_yield_0) ../vm_eval.c:1362
2025-06-30T14:58:33.3710410Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_yield) ../vm_eval.c:1378
2025-06-30T14:58:33.3711585Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_ary_collect+0x64) [0x5596b1339a34] ../array.c:3974
2025-06-30T14:58:33.3713444Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_call_cfunc_with_frame_+0x10d) [0x5596b11e048d] ../vm_insnhelper.c:3770
2025-06-30T14:58:33.3715372Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_sendish+0x109) [0x5596b11e8fd9] ../vm_insnhelper.c:5977
2025-06-30T14:58:33.3716728Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_core+0xeb0) [0x5596b12025c0] ../insns.def:851
2025-06-30T14:58:33.3718086Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_loop+0x38) [0x5596b11f28e8] ../vm.c:2667
2025-06-30T14:58:33.3719218Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_vm_exec) ../vm.c:2646
2025-06-30T14:58:33.3720358Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_yield_with_cref+0x4e) [0x5596b11f7334] ../vm.c:1713
2025-06-30T14:58:33.3721500Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_yield) ../vm.c:1721
2025-06-30T14:58:33.3722506Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_yield_0) ../vm_eval.c:1362
2025-06-30T14:58:33.3723747Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_yield) ../vm_eval.c:1378
2025-06-30T14:58:33.3725097Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_ary_collect+0x64) [0x5596b1339a34] ../array.c:3974
2025-06-30T14:58:33.3726554Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_call_cfunc_with_frame_+0x10d) [0x5596b11e048d] ../vm_insnhelper.c:3770
2025-06-30T14:58:33.3728026Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_sendish+0x109) [0x5596b11e8fd9] ../vm_insnhelper.c:5977
2025-06-30T14:58:33.3729400Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_core+0xeb0) [0x5596b12025c0] ../insns.def:851
2025-06-30T14:58:33.3730711Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(vm_exec_loop+0x38) [0x5596b11f28e8] ../vm.c:2667
2025-06-30T14:58:33.3731855Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_vm_exec) ../vm.c:2646
2025-06-30T14:58:33.3733041Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_ec_exec_node+0xa5) [0x5596b10131c5] ../eval.c:282
2025-06-30T14:58:33.3734339Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(ruby_run_node+0x61) [0x5596b10157f1] ../eval.c:320
2025-06-30T14:58:33.3735762Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(rb_main+0x2b) [0x5596b100fcd0] ../main.c:49
2025-06-30T14:58:33.3736846Z /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/ruby(main) ../main.c:69
2025-06-30T14:58:33.3737696Z /lib/x86_64-linux-gnu/libc.so.6(0x7f093302a1ca) [0x7f093302a1ca]
2025-06-30T14:58:33.3738484Z /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7f093302a28b]
2025-06-30T14:58:33.3739152Z [0x5596b100fd15]
2025-06-30T14:58:33.3739469Z
2025-06-30T14:58:33.3739899Z -- Other runtime information -----------------------------------------------
2025-06-30T14:58:33.3740479Z
2025-06-30T14:58:33.3741293Z * Loaded script: /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/tool/lib/test/unit/parallel.rb: TestPatternMatching#test_hash_pattern
...
2025-06-30T14:58:33.7459812Z * MMTk:
2025-06-30T14:58:33.7459964Z
2025-06-30T14:58:33.7460276Z mmtk_plan_name: Immix
2025-06-30T14:58:33.7460694Z mmtk_free_bytes: 33124352
2025-06-30T14:58:33.7461096Z mmtk_total_bytes: 60231680
2025-06-30T14:58:33.7461496Z mmtk_used_bytes: 27107328
2025-06-30T14:58:33.7461912Z mmtk_starting_heap_address: 0x20000000000
2025-06-30T14:58:33.7462368Z mmtk_last_heap_address: 0x220000000000
...
2025-06-30T14:58:38.1295726Z running file: /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/test/ruby/test_pattern_matching.rb
MMTk was running the Immix plan in Release mode. If the stack trace is accurate, the segmentation fault is in RCLASS_EXT_WRITABLE in class.h.
static inline rb_classext_t *
RCLASS_EXT_WRITABLE(VALUE obj)
{
const rb_namespace_t *ns;
if (LIKELY(RCLASS_PRIME_CLASSEXT_WRITABLE_P(obj))) {
return RCLASS_EXT_PRIME(obj);
}
// delay namespace loading to optimize for unmodified classes
ns = rb_current_namespace();
if (!ns || NAMESPACE_BUILTIN_P(ns)) { // THIS LINE!
// If no namespace is specified, Ruby VM is in bootstrap
// and the clean class definition is under construction.
return RCLASS_EXT_PRIME(obj);
}
return RCLASS_EXT_WRITABLE_LOOKUP(obj, ns);
}The segmentation fault is at 0x0000000000000048 (72 in decimal). But NAMESPACE_BUILTIN_P(ns) reads the field at offset 120.
It is currently unclear whether ns was returned with the value -48, or the stack trace is inaccurate in terms of source code line number. I cannot reproduce this crash locally.
Metadata
Metadata
Assignees
Labels
No labels