Actions
Bug #19444
closedYJIT String#+@ miscompilations
    Bug #19444:
    YJIT String#+@ miscompilations
  
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 Stackprofgem
- It has a type confusion issue from assuming that the method always return an ::Stringinstance. It can return subclass instances
The YJIT override does not exist on the 3.1 series.
        
           Updated by alanwu (Alan Wu) over 2 years ago
          Updated by alanwu (Alan Wu) over 2 years ago
          
          
        
        
      
      - 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]
        
           Updated by byroot (Jean Boussier) over 2 years ago
          Updated by byroot (Jean Boussier) over 2 years ago
          
          
        
        
      
      - 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
        
           Updated by naruse (Yui NARUSE) over 2 years ago
          Updated by naruse (Yui NARUSE) over 2 years ago
          
          
        
        
      
      - 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.
Actions