Java 因非法内存访问而崩溃。

Java 因非法内存访问而崩溃。

我在 OEL 5.8 上使用 Java,它在某些应用程序中崩溃,并出现“非法内存访问。[54] 错误”。它发生在 3 个不同的 Java 安装中。其中 2 个是 Jrockit 版本(R28.2.5-20-152429-1.6.0_37 和 R28.2.2-7-148152-1.6.0_29),第三个是 Sun,所以我猜这不是 Java 的问题,而是 Linux 的问题。一切都运行正常,直到几天前它开始崩溃。它不会在每个 Java 应用程序上崩溃,只有其中几个完全不相关的应用程序崩溃(但它们都有 GUI)。

这是转储的相关部分。如果需要,我可以上传所有内容。

Error Message: Illegal memory access. [54]
Signal info  : si_signo=11, si_code=2 si_addr=0x2aaaf618a000
Version      : Oracle JRockit(R) R28.2.5-20-152429-1.6.0_37-20120927-1915-linux-x86_64
OS version   : Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Linux version 2.6.18-308.13.1.0.1.el5xen ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Wed Aug 22 05:17:58 EDT 2012 (x86_64)
Hypervisor   : Xen v3.4
Thread System: Linux NPTL
LibC release : 2.5-stable
Java locking : Lazy unlocking enabled (class banning) (transfer banning)
State        : JVM is running
Command Line : -Dsun.java.command=org.tp23.antinstaller.runtime.ExecInstall swing . -Dsun.java.launcher=SUN_STANDARD org.tp23.antinstaller.runtime.ExecInstall swing .

StackOverFlow: 0 StackOverFlowErrors have occured
OutOfMemory  : 0 OutOfMemoryErrors have occured
C Heap       : Good; no memory allocations have failed
GC Strategy  : Mode: throughput, with strategy: genparpar (basic strategy: genparpar)
GC Status    : OC is not running. Last finished OC was OC#0.
             : YC is not running. Last finished YC was YC#0.
YC History   : Ran 0 YCs since last OC.
Heap Holes   : 1 hole(s), at 0x41c67000 - 0x42668000
Heap         : 0x3f5fd000 - 0x43ffe000  (Size: 64 MB)
Compaction   : (no compaction area)
Allocation   : TLA-min: 2048, TLA-preferred: 65536 TLA-waste limit: 2048
NurseryList  : 0x3f5fd000 - 0x415fd000
KeepArea     : 0x40dfcfe8 - 0x415fd000
KA Markers   : [ 0x405fcff0,  0x40dfcfe8 , 0x415fd000 ]
Forbidden A  : (none)
Previous KA  : (none)
Previous FA  : (none)
CompRefs     : References are compressed, with heap base 0x0 and shift 0.

然后发生异常的模块:

Loaded modules:
(* denotes the module where the exception occured)
0000000000400000-00000000004128a3  /usr/jrockit/bin/java
00007fff2ebfd000-00007fff2ebfddb7  /usr/jrockit/bin/java
0000003cc1200000-0000003cc1201f93  /lib64/libdl.so.2
0000003cc1600000-0000003cc1615b4f  /lib64/libpthread.so.0
0000003cc0600000-0000003cc074d417  /lib64/libc.so.6
0000003cc0200000-0000003cc021bbe7 */lib64/ld-linux-x86-64.so.2
00002add13145000-00002add1344cf33  /usr/jrockit/jre/lib/amd64/jrockit/libjvm.so

部分堆栈跟踪如下:

Thread Stack Trace:
    at _dl_relocate_object+981()@0x3cc020a855
    at dl_open_worker+569()@0x3cc0210f6a
    at <unknown>(???.c)@0x13ad64f0
    -- Java stack --
    at java/lang/ClassLoader$NativeLibrary.load(Ljava/lang/String;)V(Native Method)
    at java/lang/ClassLoader.loadLibrary0(ClassLoader.java:1807)
    at java/lang/ClassLoader.loadLibrary(ClassLoader.java:1724)
    at java/lang/Runtime.loadLibrary0(Runtime.java:823)
    at java/lang/System.loadLibrary(System.java:1028)
    at sun/font/FontManager$1.run(FontManager.java:228)
...

提前谢谢你的帮助。

相关内容