Bug #19444 closed
YJIT String#+@ miscompilations
Added by alanwu (Alan Wu) about 2 years ago.
Updated about 2 years ago.
Description
We noticed two issues with YJIT's String#+@
(String unary plus) implementation.
It has issues with GC allocation tracing. We saw it SEGV with the Stackprof
gem
It has a type confusion issue from assuming that the method always return an ::String
instance. It can return subclass instances
The YJIT override does not exist on the 3.1 series.
Status changed from Open to Closed
Applied in changeset git|c178926fbe879045fa711444a1fd9e906af23e3b .
YJIT: jit_prepare_routine_call() for String#+@ missing
We saw SEGVs due to this when running with StackProf, which needs a
correct PC for RUBY_INTERNAL_EVENT_NEWOBJ, the same event used for
ObjectSpace allocation tracing.
[Bug #19444 ]
Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: REQUIRED to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED
Backport changed from 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE
ruby_3_2 4d75035e1762a23d38c5192b30bb47f40b752bee merged revision(s) c178926fbe879045fa711444a1fd9e906af23e3b,a4b7ec12298c78392797e5ba7704076550e4f100.
Also available in: Atom
PDF
Like 0
Like 0 Like 0 Like 0