我们正在使用具有以下操作系统级别的 AIX 机器,其中安装了 JRE 6。当 JIT 编译器未设置为 NONE 时,即使进行版本检查,此安装也会引发错误。
$ oslevel -s
7100-00-02-1041
在这台机器上安装了 IBM 提供的 jre 1.6。现在,每当我运行命令(如下所述)时,它都会返回错误。
./java -version
Unhandled exception
Type=Segmentation error vmState=0x00000000
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000
Signal_Code=00000033
Handler1=09001000A4A86CD0 Handler2=09001000A4A7EA40
R0=0000000000000000 R1=0000000110115910 R2=0000000000000012 R3=000000000000002F
R4=0A000000000531B8 R5=0000000000000178 R6=0000000111F7CDD9 R7=0000000000000008
R8=0000000111EA18B0 R9=0000000000000000 R10=00000000000000AD R11=090000001D99908C
R12=090000001D67EF10 R13=0000000110120800 R14=0000000111F7CD68 R15=0000000110A78100
R16=00000001113447B0 R17=0000000111ECB118 R18=09001000A4A8AD30 R19=0000000000000004
R20=0000000111ECB158 R21=0A000000000591B0 R22=0A0000000003AE58 R23=0000000000000004
R24=000000000000002F R25=0000000000000000 R26=0000000000000005 R27=000000000000002D
R28=0A00000000053168 R29=0000000000000000 R30=0000000110115EA0 R31=0000000111CFC010
IAR=090000001D99908C LR=0000000110B06F3C MSR=A00000000000D032 CTR=090000001D99908C
CR=8400822400000005 FPSCR=8200000000000000 XER=0000000582000000
FPR0 0000000c0000000c (f: 12.000000, d: 2.546395e-313)
FPR1 41e0000000000000 (f: 0.000000, d: 2.147484e+09)
FPR2 c1e0000000000000 (f: 0.000000, d: -2.147484e+09)
FPR3 4330000000400000 (f: 4194304.000000, d: 4.503600e+15)
FPR4 4530000000000000 (f: 0.000000, d: 1.934281e+25)
FPR5 3fc999999999999a (f: 2576980480.000000, d: 2.000000e-01)
FPR6 3fd6666666666666 (f: 1717986944.000000, d: 3.500000e-01)
FPR7 3ff0000000000000 (f: 0.000000, d: 1.000000e+00)
FPR8 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR9 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR10 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR11 4030000000000000 (f: 0.000000, d: 1.600000e+01)
FPR12 3fe8000000000000 (f: 0.000000, d: 7.500000e-01)
FPR13 4028000000000000 (f: 0.000000, d: 1.200000e+01)
FPR14 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR15 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR16 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR17 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR18 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR19 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR20 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR21 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR22 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR23 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR24 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR25 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR26 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR27 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR28 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR29 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR30 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR31 0000000000000000 (f: 0.000000, d: 0.000000e+00)
Module=/usr/openv/java/sdk/jre/lib/ppc64/libj9jit24.so
Module_base_address=090000001D73F000
Target=2_40_20071121_015015_BHdSMr (AIX 7.1)
CPU=ppc64 (4 logical CPUs) (0x200000000 RAM)
----------- Stack Backtrace -----------
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D6247C8 [0x1D61D000 +0x000077C8]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D625088 [0x1D61D000 +0x00008088]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D623A40 [0x1D61D000 +0x00006A40]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D657C08 [0x1D61D000 +0x0003AC08]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D65B788 [0x1D61D000 +0x0003E788]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D65B664 [0x1D61D000 +0x0003E664]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D65745C [0x1D61D000 +0x0003A45C]
/usr/openv/java/sdk/jre/lib/ppc64/libjclscar_24.so:0x1DF015AC [0x1DEEC000
+0x000155AC]
/usr/openv/java/sdk/jre/lib/ppc64/libjclscar_24.so:0x1DF4C268 [0x1DEEC000
+0x00060268]
/usr/openv/java/sdk/jre/lib/ppc64/libjclscar_24.so:0x1DF4C3CC [0x1DEEC000
+0x000603CC]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D63D570 [0x1D61D000 +0x00020570]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D620E94 [0x1D61D000 +0x00003E94]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D63D34C [0x1D61D000 +0x0002034C]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D6398AC [0x1D61D000 +0x0001C8AC]
/usr/openv/java/sdk/jre/lib/ppc64/libj9prt24.so:0x1D69E0F4 [0x1D69B000 +0x000030F4]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D638360 [0x1D61D000 +0x0001B360]
/usr/openv/java/sdk/jre/lib/ppc64/libj9vm24.so:0x1D641BEC [0x1D61D000 +0x00024BEC]
/usr/openv/java/sdk/jre/lib/ppc64/j9vm/libjvm.so:0x1D5F8C24 [0x1D5F6000 +0x00002C24]
java:0x00002F18 [0x00000000 +0x00002F18]
java:0x00001118 [0x00000000 +0x00001118]
/usr/lib/libpthreads.a:0x007E8E14 [0x007E5000 +0x00003E14]
0x00000000
---------------------------------------
JVMDUMP006I Processing Dump Event "gpf", detail "" - Please Wait.
JVMDUMP007I JVM Requesting System Dump using
'/usr/openv/java/sdk/jre/bin/core.20130724.135736.16515288.0001.dmp'
JVMDUMP012E Error in System Dump: cannot find core file, check "ulimit -c" is
set high enough
JVMDUMP007I JVM Requesting Snap Dump using
'/usr/openv/java/sdk/jre/bin/Snap.20130724.135736.16515288.0002.trc'
JVMDUMP010I Snap Dump written to /tmp/Snap.20130724.135736.16515288.0002.trc
JVMDUMP007I JVM Requesting Java Dump using
'/tmp/javacore.20130724.135736.16515288.0003.txt'
JVMDUMP010I Java Dump written to /tmp/javacore.20130724.135736.16515288.0003.txt
JVMDUMP013I Processed Dump Event "gpf", detail "".
在互联网上进行大量搜索后,我发现设置选项 JAVA_COMPILER=NONE。这个选项对我有用。
$ JAVA_COMPILER=NONE
avisbl4vm4 bin: $ export JAVA_COMPILER
avisbl4vm4 bin: $ ./java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap6460-20071123_01)
IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 AIX ppc64-64
jvmap6460-20071121_15015 (JIT disabled)
J9VM - 20071121_015015_BHdSMr
GC - 20071031_AA)
JCL - 20071118_01
现在,我非常害怕使用此选项,因为它不会使用 JIT,而且有问题的机器是生产盒。请帮我解决这个问题。
此外,看到安装的内部版本号(build pap6460-20071123_01)这很旧,我感到有点惊讶。我已经从 LINK 下载了 JRE 包。这是正确的位置吗?这个JRE没有升级吗?请注意:这是 JRE 6,仅限使用 JRE 6。