From: "luke-gru (Luke Gruber) via ruby-core" Date: 2024-02-15T16:00:26+00:00 Subject: [ruby-core:116780] [Ruby master Bug#20267] Hashes that use ar_table aren't moved properly across ractors Issue #20267 has been updated by luke-gru (Luke Gruber). I created a patch here: https://github.com/ruby/ruby/pull/9983 ---------------------------------------- Bug #20267: Hashes that use ar_table aren't moved properly across ractors https://bugs.ruby-lang.org/issues/20267#change-106804 * Author: luke-gru (Luke Gruber) * Status: Open * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- This crashes in debug build and gives weird results in non debug build, because the ar_table values aren't copied over to the new "embedded" hash during a move across ractors. ```ruby r = Ractor.new { hash = receive puts hash } obj = { "1" => 1, "2" => 2, "3" => 3, } puts obj r.send(obj, move: true) r.take ``` Crash log: ``` /home/lukeg/workspace/ruby-build/miniruby(sigsegv+0x4d) [0x5641e67d105d] ../ruby/signal.c:926 /lib/x86_64-linux-gnu/libc.so.6(0x7fb4baa42520) [0x7fb4baa42520] /home/lukeg/workspace/ruby-build/miniruby(RB_BUILTIN_TYPE+0x0) [0x5641e6778db0] ../ruby/ractor.c:3128 /home/lukeg/workspace/ruby-build/miniruby(rbimpl_RB_TYPE_P_fastpath) ../ruby/include/ruby/internal/value_type.h:351 /home/lukeg/workspace/ruby-build/miniruby(RB_TYPE_P) ../ruby/include/ruby/internal/value_type.h:378 /home/lukeg/workspace/ruby-build/miniruby(RB_FL_ABLE) ../ruby/include/ruby/internal/fl_type.h:449 /home/lukeg/workspace/ruby-build/miniruby(RB_FL_TEST_RAW) ../ruby/include/ruby/internal/fl_type.h:471 /home/lukeg/workspace/ruby-build/miniruby(rb_ractor_shareable_p) ../ruby/include/ruby/ractor.h:256 /home/lukeg/workspace/ruby-build/miniruby(reset_belonging_enter) ../ruby/ractor.c:3121 ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/