Bug #19444
closed
YJIT String#+@ miscompilations
Added by alanwu (Alan Wu) almost 2 years ago.
Updated over 1 year 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
Like0
Like0Like0Like0