bczhc
1
如题,当使用目前最新的jdk-openjdk 26.u35-1启动同样是最新的Minecraft 26.2 Snapshot 2(确保使用的是默认的Vulkan渲染器),在启动到主界面后数秒后就SIGSEGV了。大家可以帮忙确认下吗,看看会不会这样会崩。
关键是什么,我如果使用这个官方的jdk-openjdk的PKGBUILD,在我本地makepkg构建,再安装自己构建的openjdk来启动,问题就消失了。毫无没有任何头绪,使用jvm的-XX:+PrintFlagsFinal参数看了,源里的openjdk和我本地构建的openjdk在运行时也是完全一模一样的flags,无法确定是什么问题,也不知这是不是个Arch打包的问题,还是我本地其他环境有所影响。
不算是个求助贴吧,所以先不贴各种日志什么的了。我想寻求一下反馈来进一步排除,不知道都是这样还是就我的问题(MC bugtracker有人提交了一份貌似是此问题的报告,但奇怪的是按说用Arch和尝试MC最新快照的人应该不少,但却没看到有人报告此问题)。
依云
(lilydjwg)
2
有啊,昨天群里就讨论过。用别家编译的jre就没问题,用Arch打包的就会坏掉,25和26都这样。我也不知道是什么原因,我这里没有生成coredump。
也许可以去给打包者提个bug报告。
bczhc
3
啊?……我在网上根本就没搜到啥消息,MC bugtracker倒有一份,但也没更多进展了……唉,消息闭塞都是。
这是我的进展,包括coredump以及workaround,这些细节context贴一下吧。我甚至最开始不知道是Arch打包的影响,发到openjdk邮件列表去了。但就是不懂,为什么Arch打包可以影响到jvm的行为,而且我本地是用的一模一样的PKGBUILD以及编译参数,行为就是不一样。
bczhc
4
不过还在等那个Arch GitLab allowlist给我通过……否则就去给打包那边报告一下了。
bczhc
5
这是昨天刚发在archlinux bbs里的,虽然还没回复。就很奇怪。用arch和测试MC最新版的就没啥人吗,我还以为就我遇到了这个问题。
依云
(lilydjwg)
6
嗯……因为是昨天即时聊天软件里的消息。现在的互联网已经太多地方都变成「深网」了。
bczhc
7
害。行吧。那我就先不管了。既然确实是跟arch的打包有关。等看看后面gitlab账号给我通过了我去提一提看。或者其他人也有兴趣的就去给他们提提。
bczhc
8
之后有什么新进展的话也麻烦就来这告知一下或那个MC报告下更新一下。现在的workaround就是要么使用其他openjdk(比如oracle的或者自己编译,要么就是加那个jvm参数)。
那个MC bug报告下说让我们测试官方启动器会不会出问题,不过我没兴趣测 因为一直用的HMCL不想再装他们那个,而且我寻思着用官方的启动器如果也是用系统的openjdk 25&26那问题应该照样有。
依云
(lilydjwg)
9
好。
我用的是PrismLauncher,用Arch的Java也有问题。但是MC提供的Java是没问题的。
我也遇到了,不过我想问你在mcbug追踪器上提交过bug吗,因为bugs追踪器居然提示我没有权限,java版本列表页加载不出来
bczhc
14
我查看了.BUILDINFO文件并进一步测试了,是LTO引起的。Arch构建的OpenJDK开启了LTO,但我本地的/etc/makepkg.conf里是没开lto的,所以造成了不一致性。
如果使用的是Arch构建的带LTO的OpenJDK,可以使用-XX:CompilerThreadStackSize=2048(或者可以再调高一些。默认是1024)参数作为workaround。或者如果是自己构建带LTO的,又不想使用额外JVM参数的,可以在构建时使用--with-extra-cflags="-fno-inline-functions-called-once" --with-extra-cxxflags="-fno-inline-functions-called-once"
我也更新了MC bugtracker和邮件列表,这个就先关闭了。