JAVA 8 次崩溃并显示启动时的致命错误日志 - Solaris 10 (sparc)

JAVA 8 crashes with Fatal Error Log on startup - Solaris 10 (sparc)

我有多个 Solaris 10 主机都在工作并且 运行 与 Java 7 正确连接。 我无法使用 Java 8 的任何风格来处理我的应用程序或主机上的其他 java 应用程序。

启动失败并写入致命错误日志。 hs_err_pid* 文件表明崩溃发生在本机代码的 Java 虚拟机之外,它指向 libXi.so.5 库 XListInputDevices 方法。

我在互联网上发现了一些(很少)提到这个问题,其中大部分表明这个问题已经超过 5 年了 - 但我还没有找到任何解决方案并且引用这个问题的错误仍然存​​在并且不活跃。这告诉我有人在 Solaris 10 (sparc) 上使用 Java 8,所以必须有希望。

有什么建议吗?

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0xfffffffec8c05264, pid=24057, tid=0x0000000000000003
#
# JRE version: Java(TM) SE Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode solaris-sparc compressed oops)
# Problematic frame:
# C  [libXi.so.5+0x5264]  XListInputDevices+0x3c8
#
# Core dump written. Default location: /opt/cds/dataSyncPlus_1.2.2b/bin/core or core.24057
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
...

Stack: [0xffffffff7ab00000,0xffffffff7ac00000],  sp=0xffffffff7abfd160,  free space=1012k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libXi.so.5+0x5264]  XListInputDevices+0x3c8
C  [libawt_xawt.so+0x301b8]  getNumButtons+0x60
C  [libawt_xawt.so+0x3012c]  Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl+0x3c
j  sun.awt.X11.XToolkit.getNumberOfButtonsImpl()I+0
j  sun.awt.X11.XToolkit.getNumberOfButtonsImpl()I+0
j  sun.awt.X11.XToolkit.getNumberOfButtons()I+10
j  sun.awt.X11.XToolkit.initializeDesktopProperties()V+102
j  java.awt.Toolkit.getDesktopProperty(Ljava/lang/String;)Ljava/lang/Object;+32
j  sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(Z)Lsun/swing/SwingUtilities2$AATextInfo;+11
j  javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(Ljavax/swing/UIDefaults;)V+12062

...

更新:

我的 Solaris 主机已经装满了,我总是 运行 通过 SSH 从我办公桌上的终端。 正如我所说,这适用于 JAVA 7 和我所做的一切。 为了进行测试,我去了服务器并从直接连接到主机的 KVM 进行了尝试,JAVA 8 工作正常。所以,这并不是说这应该让任何基于库失败的人感到惊讶,但这确实是一个与 X 相关的问题。

我不确定这些附加信息对我有何帮助。

这看起来像是在 Oracle Bug 17750760 下的 Solaris 10 libXi 中报告的堆栈跟踪,应该通过安装 Solaris 10 补丁 #119059-69 (SPARC) 或 #119060-68 (x86) 或更高版本来修复。

这是 Java 中的一个错误,这是一个已知问题 https://bugs.openjdk.java.net/browse/JDK-7028364 它仍然处于打开状态 state.If 您正在使用 -d64in vm arguments 删除并重试。