Java 、Idea、Android Studio 用户请暂缓升级到 macOS 14.4

查看 160|回复 17
作者:codehz   
https://blogs.oracle.com/java/post/java-on-macos-14-4
省流:果子改了受保护页面的默认处理方式,之前是发 sigsegv 现在直接 sigkill ,而 java 从很早的版本(已知 8 )开始就在滥用这个特性来将 null 检测改为捕获 sigsegv 信号,包括用户主动写的 if == null 也会在 jit 的帮助下被转换,这在新版本 mac 里会直接触发错误。
建议有 java 需求或依赖基于 java 的 ide 的 mac 用户暂缓升级
codehz
OP
  
补充一下,这个需要刚好在 jit 运行的时候(也就是线程正处于 write 的模式)才会触发的 sigkill 其他时候依然是正常流程,因此 grallvm 等直接生成 binary 的不受影响
ly841000   
这种关键特性也能改??????
rainbowmolly   
“access memory in protected memory regions” 这个行为为什么是“As a normal part of the just-in-time compile and execute cycle” 常规操作?这种即使在果子自己的 oc 中应该是 bad access 直接就 crash 掉吧
meloyang05   
实在不理解苹果为什么要在一个小版本更新里进行这么重要的内核更改,完全没有充分的时间来验证更改后所可能引发的一系列后果。这已经是第三个 14.4 更新后所带来的问题了,前两个是显示器 usb 外设失灵,usb 打印机失灵。看得出 14.4 在内核上做了很多改动,然而这些改动没有经过充分测试和验证就能以正式版本推送给用户,实在让人对现在苹果的软件质量不敢恭维
codehz
OP
  
@rainbowmolly 以前的说法是,通过检测 segsigv 的方式,在 happy path (也就是没异常)的时候性能比较好,甚至于在特定情况(比如 jit 发现某个参数几乎没有 null 过)省略用户主动写的 null 判断更快
Focus9   
怪不得 idea 偶尔闪退
meloyang05   
感觉像这种程度的内核改动,至少应该放在 macOS 15 这种大版本更新中,来给开发者一些时间解决兼容性问题,而不是像现在这样不声不响地推送到一个小版本中,给用户带来本不必要的困扰
codehz
OP
  
@meloyang05 我的个人猜测应该是苹果发现了什么影响安全性的严重 bug ,可能是已经有在野利用了
neochen13   
请问有没有办法降级系统额
您需要登录后才可以回帖 登录 | 立即注册

返回顶部