O diretor sênior de gerenciamento de produtos da Oracle, Aurelio Garcia-Ribeyro, falou recentemente no blog da empresa sobre um problema no macOS Sonoma 14.4 que está quebrando o Java em computadores da Maçã em todas as versões posteriores à 8.0 e, até mesmo, em compilações beta do JDK22.
De acordo com o executivo, o problema não estava presente nas betas do macOS 14.4 e foi descoberto de surpresa após a liberação oficial do sistema, no início deste mês. Ele acontece por causa de uma mudança na forma como o SO notifica processos em execução sobre tentativas de acesso a regiões protegidas de memória.
Nas versões anteriores ao macOS 14.4, o kernel do sistema responde a essas tentativas com um sinal (que pode ser o SIGBUS
ou o SIGSEGV
) — o que permite ao processo lidar com a situação para prosseguir com a execução normal. Isso é usado pela JVM 1Java virtual machine, ou máquina virtual Java. tanto para correção quanto para desempenho.
Na nova versão, no entanto, quando uma thread opera em modo de gravação e algum processo tentar acessar uma região protegida na memória, o sistema envia o novo sinal SIGKILL
— o qual simplesmente encerra o processo imediatamente, sem nenhuma possibilidade de tratamento.
Segundo Garcia-Ribeyro, não há uma solução alternativa disponível para o problema (além da difícil tarefa de instalar uma versão anterior do macOS). A Apple já foi notificada sobre o bug, que foi detalhado pela Oracle nessa página.
Ou seja, se você usa o Java e ainda não atualizou o seu Mac, a recomendação por ora é que não faça isso.
via MacRumors
Notas de rodapé
- 1Java virtual machine, ou máquina virtual Java.