- 
    Type:
Bug
 - 
    Resolution: Fixed
 - 
    Priority:
  P2                     
     - 
    Affects Version/s: 11.0.8
 - 
    Component/s: hotspot
 
- 
        b03
 - 
        Not verified
 
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build | 
|---|---|---|---|---|---|---|
| JDK-8260147 | 16.0.1 | Jaroslav Bachorík | P2 | Resolved | Fixed | b03 | 
| JDK-8259607 | 16 | Jaroslav Bachorík | P3 | Resolved | Fixed | b33 | 
| JDK-8265649 | 15.0.4 | Ekaterina Vergizova | P2 | Resolved | Fixed | b01 | 
| JDK-8260051 | 13.0.7 | Ekaterina Vergizova | P2 | Resolved | Fixed | b01 | 
| JDK-8261049 | 13.0.6 | Ekaterina Vergizova | P2 | Resolved | Fixed | b01 | 
| JDK-8259376 | 11.0.11-oracle | Dukebot | P3 | Resolved | Fixed | b01 | 
| JDK-8259320 | 11.0.11 | Jaroslav Bachorík | P3 | Resolved | Fixed | b01 | 
| JDK-8259630 | openjdk8u292 | Jaroslav Bachorík | P3 | Resolved | Fixed | b01 | 
{noformat}
A fatal error has been detected by the Java Runtime Environment:
SIGILL (0x4) at pc=0x00007fa665cd4e5e, pid=1, tid=376
JRE version: OpenJDK Runtime Environment Zulu11.41+23-CA (11.0.8+10) (build 11.0.8+10-LTS)
Java VM: OpenJDK 64-Bit Server VM Zulu11.41+23-CA (11.0.8+10-LTS, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
Problematic frame:
V [libjvm.so+0x8c9e5e]
Core dump will be written. Default location: //core
An error report file with more information is saved as:
/tmp/hs_err_pid1.log
{noformat}
Thanks to @evergizova the culprit was identified to be an erroneous memcpy in JfrStorage::flush_regular() or JfrStorage::flush_large() in combination with musl libc which inserts special traps for cases when memcpy src and dst regions overlap (https://git.2f30.org/fortify-headers/file/include/string.h.html#l39).
The problem boils down to the fact that for a non-empty buffer the JfrStorage::flush_regular_buffer() will
reset cur.pos() to the start offset while cur_pos will stay at the
start offset + N.
Then memcpy(cur.pos(), cur_pos, used) will have the
src and dest regions overlapping (given that used > N) and on Alpine
linux (musl libc) SIGILL will be raised.
- backported by
 - 
                    
JDK-8260051 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8260147 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8261049 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8265649 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8259320 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8259376 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8259607 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 - 
                    
JDK-8259630 SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
-         
     - Resolved
 
 -         
 
- links to
 - 
                    
        
        Commit
        openjdk/jdk13u-dev/3e60cad2
    
 - 
                    
        
        Commit
        openjdk/jdk15u-dev/1fc67292
    
 - 
                    
        
        Commit
        openjdk/jdk16/e85892bf
    
 - 
                    
        
        Commit
        openjdk/jdk/a06cea50
    
 - 
                    
        
        Review
        openjdk/jdk13u-dev/80
    
 - 
                    
        
        Review
        openjdk/jdk15u-dev/29
    
 - 
                    
        
        Review
        openjdk/jdk16/111
    
 - 
                    
        
        Review
        openjdk/jdk/1823