Bug #22383
openFix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
Description
mistakenly rewrote
as
requiring orig to not be shared, the opposite of the original
condition. orig always shares the buffer with tmp here, so the buffer
was never given back and the string stayed shared until its next
modification copied it.
The next line of code then reads aux.shared from strings
that are not shared, where the union holds aux.capa.
Updated by rwstauner (Randy Stauner) about 7 hours ago
Updated by rwstauner (Randy Stauner) about 7 hours ago
4.0 Backport PR https://github.com/ruby/ruby/pull/19019
Updated by nobu (Nobuyoshi Nakada) about 7 hours ago
- Backport changed from 3.3: UNKNOWN, 3.4: UNKNOWN, 4.0: REQUIRED to 3.3: REQUIRED, 3.4: REQUIRED, 4.0: REQUIRED
With class Ractor alias join take end unless Ractor.method_defined?(:join), it reproduced on 3.3 an 3.4.
Updated by rwstauner (Randy Stauner) about 7 hours ago
With class Ractor alias join take end unless Ractor.method_defined?(:join), it reproduced on 3.3 an 3.4.
What reproduces?
I do have a few related fixes coming in another PR but this particular condition is still
in 3.4, it only got changed in the linked commit which is on 4.0
Updated by nobu (Nobuyoshi Nakada) about 7 hours ago
Sorry, confusing with [Bug #22382].