Project

General

Profile

Actions

Bug #22389

open

Hang on GC.compact

Bug #22389: Hang on GC.compact

Added by rkh (Konstantin Haase) about 5 hours ago. Updated about 2 hours ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 4.1.0dev (2026-09-29T07:26:07Z master 64a4a372d7) +PRISM [arm64-darwin25]
[ruby-core:126879]

Description

The following code works on 4.0.7 but hangs on 4.1.0dev (64a4a372d7):

ready = Ractor::Port.new
Ractor.new(ready) do |port|
  Array.new(10_000) { Object.new }
  port << true
  Ractor.receive
end
ready.receive
Thread.new { GC.compact }.join
GC.compact

A native sample of the hung process shows:

gc_start_global
  gc_compact_finish
    gc_update_references_heap
      rb_iseq_mark_and_move
        rb_gc_mark_and_move
          rb_gc_impl_location + 180

No data to display

Actions

Also available in: PDF Atom