Java non funziona su Mac con chip Apple e macOS 14.4

Java non funziona su Mac con chip Apple e macOS 14.4

Gli utenti che usano Mac con chip M1, M2 o M3 non devono installare macOS 14.4 Sonoma perché i processi Java vengono terminati dal sistema operativo.
Java non funziona su Mac con chip Apple e macOS 14.4
Gli utenti che usano Mac con chip M1, M2 o M3 non devono installare macOS 14.4 Sonoma perché i processi Java vengono terminati dal sistema operativo.

Apple ha rilasciato macOS Sonoma 14.4 il 7 marzo. A distanza di circa una settimana, Oracle ha comunicato che Java non funziona correttamente se gli utenti installano l’aggiornamento del sistema operativo su Mac con chip M1, M2 e M3. Nessun problema invece per i Mac con chip Intel.

Colpa della protezione dei chip Apple

Il Senior Director of Product Management Aurelio Garcia-Ribeyro spiega che, in seguito all’installazione di macOS Sonoma 14.4 sui Mac con chip Apple M1, M2 e M3, i processi Java vengono terminati in modo inaspettato. Il problema riguarda tutte le versioni, incluse le build preliminari di JDK 22. È stato scoperto solo in seguito al rilascio dell’aggiornamento perché non era presente nelle versioni beta o RC (Release Candidate).

Apple macOS per chip M1, M2 e M3 include una funzionalità che controlla come e quando il codice generato dinamicamente può essere prodotto (scritto) o eseguito in base al thread. Come parte del ciclo di compilazione ed esecuzione just-in-time, i processi in esecuzione su macOS possono accedere in aree di memoria protette.

Prima dell’aggiornamento, il kernel macOS rispondeva a questi accessi alla memoria protetta inviando un segnale (SIGBUS o SIGSEGV) al processo. Quest’ultimo può gestire il segnale e continuare l’esecuzione. Con macOS 14.4, quando un thread funziona in modalità di scrittura, se viene tentato l’accesso in un’area di memoria protetta, il sistema operativo invia invece il segnale SIGKILL. Quindi il processo viene terminato incondizionatamente.

La Java Virtual Machine genera codice dinamicamente e accede alla memoria protetta, pertanto i processi Java non possono gestire il segnale SIGKILL e vengono terminati. Oracle ha segnalato il problema a Apple. In attesa del fix, gli utenti non dovrebbero effettuare l’aggiornamento a macOS 14.4, in quanto non esiste un workaround o un modo facile per ritornare alla precedente versione (se non è stato creato un backup).

Fonte: Oracle
Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
18 mar 2024
Link copiato negli appunti