Oracle a anunțat vineri că toți cei ce folosesc aplicații Java pe macOS cu M1-M3 ar fi bine să nu instaleze pachetul macOS 14.4 pentru că acesta duce la terminarea bruscă a aplicațiilor, fără niciun fel de workaround. Sunt afectate toate versiunile de Java de la 8 la JDK 22. O rezolvare ar fi să dezinstalați pachetul macOS 14.4, dar e un proces complicat și fără un backup existent, nu are șanse reale de reușită.
Interesant este că Oracle menționează faptul că problema de Java nu era prezentă în versiunile de test ale macOS 14.4, fiind introdusă fix înainte de lansarea versiunii finale (că doar așa se face la o companie precum Apple: livrezi software netestat ca doar fraierii asta așteaptă!).
În termeni tehnici, problema e așa: procesoarele Apple silicon beneficiază de o opțiune prin care controlează cum și când codul dinamic poate fi generat sau rulat. În mod obișnuit, procesele din macOS pot să acceseze zone de memorie protejate, iar până la macOS 14.4, atunci când kernel-ul vroia să închidă nu proces, trimitea un semnal de avertizate SIGBUS sau SIGSEGV, iar procesul putea să ignore treaba asta și să continue.
Odată cu macOS 14.4 treaba asta nu se mai întâmplă, în schimb vine direct semnal de terminare SIGKILL, ceea ce face ca procesul să nu poată să reacționeze și este terminat. Treaba asta afectează direct codul generat de Java Virtual Machine, problemă care se întâmplă chiar și pe OpenJDK.
Așa că … dacă deja ați dat de problema asta, șansele să o puteți repara sunt mici și trebuie să așteptați ca Apple să se grăbească cu un update rapid.
via Oracle