Назад | Перейти на главную страницу

java вылетает из-за незаконного доступа к памяти. [54]

Я использую java в OEL 5.8, и в некоторых приложениях он вылетает с ошибкой «Недопустимый доступ к памяти. [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-приложении, только некоторые из них совершенно не связаны (однако оба имеют графический интерфейс).

Вот соответствующая часть дампа. При необходимости могу все выложить.

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 (mockbuild@ca-build56.us.oracle.com) (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)
...

Заранее благодарю за вашу помощь.