Project

General

Profile

Actions

Bug #20165

closed

Ractors moving a Struct breaks beyond the first 3 fields

Bug #20165: Ractors moving a Struct breaks beyond the first 3 fields

Added by codekitchen (Brian Palmer) almost 2 years ago. Updated 6 months ago.

Status:
Closed
Assignee:
Target version:
-
ruby -v:
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
[ruby-core:116085]

Description

Experimenting with Ractors on ruby 3.3.0, and I'm seeing a bug where if you move a struct between ractors, all but the first 3 fields are set to nil.

Foo = Struct.new(:a,:b,:c,:d,:e,:f) r = Ractor.new { foo = Foo[0,0,0,0,0,0] p foo Ractor.yield(foo, move: true) } p r.take 
❯ ruby -v ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23] ❯ ruby rbug.rb rbug.rb:3: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. #<struct Foo a=0, b=0, c=0, d=0, e=0, f=0> #<struct Foo a=0, b=0, c=0, d=nil, e=nil, f=nil> 

This seems specific to moving, if I set move: false the struct makes it across OK.


Related issues 3 (0 open3 closed)

Actions

Also available in: PDF Atom