One CI test failed inside mark_cc_entry_i. https://github.com/mmtk/mmtk-ruby/actions/runs/24711542055/job/72277188271?pr=158
Here is a stack trace:
| bootstraptest.test_io.rb_90_649.rb:16:in 'IO.copy_stream': Interrupt
| from bootstraptest.test_io.rb_90_649.rb:16:in '<main>'
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(rb_print_backtrace+0x14) [0x55bb5d6202ef] ../vm_dump.c:1112
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(rb_vm_bugreport) ../vm_dump.c:1460
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(rb_bug_for_fatal_signal+0x101) [0x55bb5d3babe1] ../error.c:1145
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(sigabrt+0x46) [0x55bb5d54dc56] ../signal.c:962
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371c45330) [0x7f0371c45330]
| /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11c) [0x7f0371c9eb2c]
| /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x1e) [0x7f0371c4527e]
| /lib/x86_64-linux-gnu/libc.so.6(abort+0xdf) [0x7f0371c288ff]
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371c297b6) [0x7f0371c297b6]
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371ca8ff5) [0x7f0371ca8ff5]
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371cab32a) [0x7f0371cab32a]
| /lib/x86_64-linux-gnu/libc.so.6(__libc_free+0x7e) [0x7f0371caddce]
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(objspace_malloc_increase_body+0x0) [0x55bb5d3ef85b] ../gc/default/default.c:9111
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(rb_gc_impl_free) ../gc/default/default.c:9110
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(ruby_xfree_sized) ../gc.c:5745
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(mark_cc_entry_i+0x67) [0x55bb5d5de6f7] ../vm_method.c:54
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/ruby/build/miniruby(rb_id_table_foreach_values+0x61) [0x55bb5d596b01] ../id_table.c:300
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/mmtk-ruby/mmtk/target/release/libmmtk_ruby.so(_ZN103_$LT$mmtk_ruby..ppp..PinPPPChildren$u20$as$u20$mmtk..scheduler..work..GCWork$LT$mmtk_ruby..Ruby$GT$$GT$7do_work17h164f3244ef377f23E+0xe6) [0x7f03721d32e6]
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/mmtk-ruby/mmtk/target/release/libmmtk_ruby.so(_ZN3std3sys9backtrace28__rust_begin_short_backtrace17hdda3c67ea586b4e1E+0xc2b) [0x7f03721e82fb]
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/mmtk-ruby/mmtk/target/release/libmmtk_ruby.so(_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hba4d7731d13ecda6E+0x133) [0x7f03721f01a3]
| /home/runner/work/mmtk-ruby/mmtk-ruby/git/mmtk-ruby/mmtk/target/release/libmmtk_ruby.so(_ZN3std3sys6thread4unix6Thread3new12thread_start17h4637f1bfded3ea68E+0x31) [0x7f03722d5891]
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371c9caa4) [0x7f0371c9caa4]
| /lib/x86_64-linux-gnu/libc.so.6(0x7f0371d29c6c) [0x7f0371d29c6c]
It happens in PinPPPChildren. It attempts to free the ccs: ruby_xfree_sized(ccs, vm_ccs_alloc_size(ccs->capa)); But it crashed in free().
I can't reproduce it locally after many executions.
One possible cause is that two GC worker threads somehow managed to scan the same object concurrently.
Another possible cause is that the ccs is already freed via a different path.
One CI test failed inside
mark_cc_entry_i. https://github.com/mmtk/mmtk-ruby/actions/runs/24711542055/job/72277188271?pr=158Here is a stack trace:
It happens in
PinPPPChildren. It attempts to free theccs:ruby_xfree_sized(ccs, vm_ccs_alloc_size(ccs->capa));But it crashed infree().I can't reproduce it locally after many executions.
One possible cause is that two GC worker threads somehow managed to scan the same object concurrently.
Another possible cause is that the ccs is already freed via a different path.