MacOS 14.4 caused a JVM crash because the update changed the kill flag returned when the JVM tries to access an illegal memory.
- JVM uses zero-cost access checks, something like,
try {
writeToFile()
} catch(err) {
if (err == SYSTEM_CRASH_IMMINENT) {
changeFilePermissions()
retry
}
}
- This is faster than checking for a file permission every time one has to write to the file.
- The update changed the return flag for the operation from SYSTEM_CRASH_IMMINENT (internally a SIGBUS/SIGSEGV flag) to a SIGKILL flag resulting in JVM crashing.