Module#initialize_copy of a class/module that another Ractor owns used to check that its constants and fields are all shareable, and copy it if so. That check made the copying Ractor walk (and flag) the owner's objects, and the fields we...ko1 (Koichi Sasada)
rb_const_remove deleted the entry from the constant table without the VM lock and then freed it, while a Ractor that does not own the class looks the table up under the VM lock but reads the entry after releasing it. Reading a constant w...ko1 (Koichi Sasada)
wait_for_single_fd_blocking_region skips ppoll when an interrupt is already pending, but left result 0, which wait_retryable reads as a timeout. With a zero timeout the deadline has passed, so it does not retry: IO#wait_readable(0) retu...ko1 (Koichi Sasada)
Same as the previous commit, for the select(2) path used by IO.select (and by thread_io_wait without poll). When an interrupt was pending, select was skipped with result 0, which wait_retryable takes as a timeout, so IO.select([io], nil...ko1 (Koichi Sasada)
Covers the previous two commits: wait_readable(0) and IO.select([io], nil, nil, 0) on an io at EOF must always report it, also while another thread keeps asking for the GVL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>ko1 (Koichi Sasada)
thread_sched_wait_events() returned thread_sched_wait_event when an interrupt was already pending at entry, without looking at the fd, and thread_io_wait() reported that as readiness: under RUBY_MN_THREADS=2, IO#wait_readable on a pipe n...ko1 (Koichi Sasada)
Applied in changeset commit:git|6ca4a120328a84a23c57af268bd7a6af5520e151. ---------- [Bug #22293] Make String#unicode_normalize work in non-main Ractors UnicodeNormalize.normalize and .normalized? read three constants that are not shar...ko1 (Koichi Sasada)
UnicodeNormalize.normalize and .normalized? read three constants that are not shareable, so any call from a non-main Ractor raised Ractor::IsolationError: * NF_HASH_C / NF_HASH_D, the memoization caches. They cannot be made shareable ...ko1 (Koichi Sasada)