[ruby-core:116799] [Ruby master Bug#20271] Issue with moving embedded string across ractors

Issue #20271 has been reported by luke-gru (Luke Gruber). ---------------------------------------- Bug #20271: Issue with moving embedded string across ractors https://bugs.ruby-lang.org/issues/20271 * Author: luke-gru (Luke Gruber) * Status: Open * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- When embedded strings are moved, the embedded bytes aren't copied over to the new embedded string. This shows itself when an embedded string has more than 16 characters, and can also be a problem when the MovedObject has been garbage collected and another object has taken its place in the ruby heap. For example: ```ruby r = Ractor.new { foo = receive puts foo foo } obj = "12345678" * 3 puts obj r.send(obj, move: true) r.take ``` ``` 123456781234567812345678 1234567812345678 ``` -- https://bugs.ruby-lang.org/

Issue #20271 has been updated by luke-gru (Luke Gruber). PR here: https://github.com/ruby/ruby/pull/9993 ---------------------------------------- Bug #20271: Issue with moving embedded string across ractors https://bugs.ruby-lang.org/issues/20271#change-106822 * Author: luke-gru (Luke Gruber) * Status: Open * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- When embedded strings are moved, the embedded bytes aren't copied over to the new embedded string. This shows itself when an embedded string has more than 16 characters, and can also be a problem when the MovedObject has been garbage collected and another object has taken its place in the ruby heap. For example: ```ruby r = Ractor.new { foo = receive puts foo foo } obj = "12345678" * 3 puts obj r.send(obj, move: true) r.take ``` ``` 123456781234567812345678 1234567812345678 ``` -- https://bugs.ruby-lang.org/

Issue #20271 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Open to Assigned Assignee set to ko1 (Koichi Sasada) ---------------------------------------- Bug #20271: Issue with moving embedded string across ractors https://bugs.ruby-lang.org/issues/20271#change-109877 * Author: luke-gru (Luke Gruber) * Status: Assigned * Assignee: ko1 (Koichi Sasada) * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- When embedded strings are moved, not all the embedded bytes are copied over to the new embedded string. This shows itself when an embedded string has more than 16 characters. For example: ```ruby r = Ractor.new { foo = receive puts foo foo } obj = "12345678" * 3 puts obj r.send(obj, move: true) r.take ``` ``` 123456781234567812345678 1234567812345678 ``` -- https://bugs.ruby-lang.org/
participants (2)
-
hsbt (Hiroshi SHIBATA)
-
luke-gru (Luke Gruber)