Pull to refresh

Java падает на arm маках с macOS 14.4

Reading time1 min
Views13K

Оригинал тут.

Из‑за бага в macOS 14.4 процесс Java машины может неожиданно завершиться. Это касается всех версий Джавы от 8 до 22. Нет никакого способа избежать или обойти этот баг. И нет простого способа откатить обновление macOS.

Этого бага не было в бета версиях macOS 14.4. Он появился только в релизе.

В macOS на М1, М2 и М3 Арм процессорах есть фича которая управляет тем как и когда исполняемый код генерируется и выполняется в каждом потоке.

В нормальном режиме работы JVM обращается к защищенным областям памяти. До версии 14.4 macOS в таких случаях отправляла процессу сигналы SIGBUS или SIGSEGV. Процесс мог сам решить что с ним делать и продолжать ли работу. В версии 14.4 когда процесс пытается писать в защищенную область памяти macOS отправляет ему SIGKILL. И процесс принудительно завершается.

JVM генерирет исполняемый код динамически. И использует защищенные области памяти для оптимизации и проверки корректности своей работы. Из‑за этого на macOS 14.4 JVM получает SIGKILL и завершается.

Предварительно скомпилированные нативные приложения GraalVM не подвержены этой проблеме. Но может возникнуть проблема со сборкой новых таких приложений.

Оракл предупредил своих клиентов, Эппл и сообщество OpenJDK об этой проблеме. Оракл рекомендует не обновлять ARM маки до версии 14.4 пока Эппл не починит баг.

Ссылочка на тикет.

Tags:
Hubs:
Total votes 16: ↑16 and ↓0+16
Comments37

Other news