From: "byroot (Jean Boussier) via ruby-core" Date: 2025-05-21T07:51:35+00:00 Subject: [ruby-core:122213] [Ruby Bug#21354] Symbol#to_proc is not ractor safe Issue #21354 has been updated by byroot (Jean Boussier). Assignee changed from ko1 (Koichi Sasada) to ractor ---------------------------------------- Bug #21354: Symbol#to_proc is not ractor safe https://bugs.ruby-lang.org/issues/21354#change-113362 * Author: luke-gru (Luke Gruber) * Status: Closed * Assignee: ractor * Backport: 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED ---------------------------------------- There is caching in `Symbol#to_proc` (`rb_sym_to_proc`) that makes the assumption that we're always in the main ractor. With multiple ractors, this caching logic is not ractor-safe in that cached procs created in one ractor can leak into other ractors. In a debug build, this results in a `ractor_confirm_belonging` assertion failure. Ruby code that reproduces the issue: ```ruby :inspect.to_proc Ractor.new do :inspect.to_proc end.take ``` -- 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/lists/ruby-core.ml.ruby-lang.org/