Java users on macOS 14, particularly those on Apple silicon systems, are urged to postpone updating to macOS 14.4 due to a critical issue causing unexpected termination of Java processes. Affected Java versions range from Java 8 to early access builds of JDK 22, with no available workaround. Compounded by the inability to revert macOS updates easily, affected users risk being unable to return to a stable configuration unless they have a complete system backup prior to the update.
The issue stems from a change introduced in macOS 14.4, altering how dynamically generated code is handled on a per-thread basis. Previously, macOS would send signals like SIGBUS or SIGSEGV to processes upon accessing protected memory regions, allowing them to handle the signal and continue execution. However, macOS 14.4 now sends the unhandled signal SIGKILL, resulting in unconditional termination of processes attempting memory access to protected regions. This affects Java Virtual Machine operations, leading to termination instead of signal handling, significantly impacting Java processes’ functionality and performance. Oracle, along with Apple and OpenJDK partners, are actively addressing the issue, and users are advised to track the progress on bugs.java.com with bugID JDK-8327860 before applying the macOS 14.4 update.