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.


Refs

  1. https://news.ycombinator.com/item?id=39726292