Oracleは2024年3月7日 (現地時間)にリリースされたmacOS Sonoma 14.4へアップグレードすることで、特定の構成のMacでJavaが異常終了すると発表し、対象となるMacでは同バージョンへのアップデートを控えるように警告しました。この問題が発生するのはApple Siliconを搭載したMacで、macOS 14.4へのアップデートを見送る以外に利用可能な回避策はなく、元に戻す簡単な方法もないとしました。
目次
この問題の影響を受けるMacは?
製品管理担当シニア ディレクターであるアウレリオ・ガルシア=リベイロ(Aurelio Garcia-Ribeyro) 氏が投稿した記事ではApple Silicon processor (M1、M2、および M3)を搭載したMacでこの問題が発現するとしており、2020年モデル以降を利用しているユーザはmacOS Sonoma 14.4へアップデートする前に、お使いのMacのアーキテクチャを確認してください。
この問題は、多くのMacユーザ、特に開発者やエンタープライズ環境において深刻な影響を及ぼす可能性があります。
この問題の概要
macOS 14.4に導入された変更により、保護されたメモリ領域へのアクセス時にプロセスを終了させるSIGKILLシグナルが送信されるようになりました。この変更は、Java Virtual Machine(JVM)が動的にコードを生成し、実行するプロセスに直接影響を与えます。Oracleによると、この問題はJava 8から最新のJDK 22の初期アクセスビルドに至るまで、幅広いJavaバージョンに影響を与えます。
macOS 14.4で加えられた変更とは…?
この問題についてOracleは、Apple Siliconを搭載したMacでは、動的に生成されたコードをスレッドごとにいつどのように生成 (書き込み) または実行できるかを制御する機能が含まれていると説明した上で、保護されたメモリ領域へのアクセスが試みられた際に、従来はSIGBUSやSIGSEGVのシグナルがプロセスに送信されていたとしました。これにより、プロセスはシグナルを処理し、実行を続けることができました。
しかし、macOS 14.4へのアップデート以降、書き込みモードで動作するスレッドが保護されたメモリ領域にアクセスしようとすると、SIGKILLシグナルが送信され、プロセスが即座に終了するように変更されたことが、この問題を引き起こしていると説明しています。
なお、同記事内で、アウレリオ・ガルシア=リベイロ 氏は「この問題は macOS 14.4 の早期アクセス リリースには存在しなかったため、Apple がアップデートをリリースした後に初めて発見されました。」とし、macOS Sonoma 14.4がリリースされるまでにOracle側がこの問題を把握できなかったことを明らかにしました。
影響と対策
この問題のため、Javaアプリケーションの動作が不安定になり、開発プロセスに大きな障害をもたらす可能性があります。Oracleは、問題の解決までAppleシリコンを搭載したMacでmacOS 14.4へのアップデートを控えることを推奨しています。
Oracleはこの問題をAppleに報告し、現在解決に向けて協力していることを明らかにしています。しかし、執筆時点で修正のタイムラインや具体的な対策についての詳細はまだ公開されていません。
この問題についての詳細や最新情報は、Oracleの公式ブログやバグ追跡システム(bugs.java.com、bugID JDK-8327860)で確認できます。
まとめ
macOS Sonoma 14.4は正式リリース以来、USBハブの問題や、プリンタに関する問題など、Macユーザの快適性を損なうトラブルが多数報告されています。
今回のトラブルではJVM (Java バーチャルマシン)上で動作するJetBrains IDEなどの多くのアプリケーションが影響を受けます。早期に解決されることが望まれますが、Appleがいつ修正を公開するなどの情報は明らかにしていないため、ユーザはアップデートを控えるか、フィードバックをした後には願うことしかできません。