Project

General

Profile

Actions

Bug #21368

open

Moving objects with finalizer between Ractors crashes

Added by peterzhu2118 (Peter Zhu) 6 days ago. Updated 1 day ago.

Status:
Assigned
Assignee:
Target version:
-
[ruby-core:122261]

Description

When an object is moved to a different Ractor, the finalizers are not copied to the new object, so it will have the FL_FINALIZE flag set but no entry in the finalizer table.

The following script crashes:

r = Ractor.new do
  loop { Ractor.receive }
end

1_000.times do
  o = Object.new
  ObjectSpace.define_finalizer(o, proc { |id| })
  r.send(o, move: true)
end

Files

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0