Bug 130868
| Summary: | Kernel 2.6.8-1.521 and IBM Java 1.3.1 don't work together | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Kent Pirkle <kmp> |
| Component: | kernel | Assignee: | Dave Jones <davej> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 2 | CC: | djuran, holycrap, javabrett, pfrields, wtogami |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | i686 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | FC3 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2005-08-16 18:30:46 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This also happens under IBMJava2-SDK-1.4.2-0.0. Sun's 1.4.2 SDK functions correctly. IBM SDKs can be downloaded here: http://www-106.ibm.com/developerworks/java/jdk/linux140/ Use LD_ASSUME_KERNEL=2.2.5 as a workaround. I tried that, it worked for the previous kernel, not for 2.6.8 The previous kernel (2.6.7-1.494.2.2) did not require a workaround for me. It was only after upgrading to 2.6.8-1.521 that IBM's SDK started breaking. Here is the workaround in action: ----- bart@omega Tue Aug 31 15:29:30 /opt/IBMJava2-142/bin $ uname -r 2.6.8-1.521 bart@omega Tue Aug 31 15:30:50 /opt/IBMJava2-142/bin $ rpm -qa IBMJ* IBMJava2-SDK-1.4.2-0.0 bart@omega Tue Aug 31 15:31:05 /opt/IBMJava2-142/bin $ ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace JVMXM012: Error occurred in final diagnostics initialization Could not create the Java virtual machine. bart@omega Tue Aug 31 15:31:18 /opt/IBMJava2-142/bin $ LD_ASSUME_KERNEL=2.2.5 ./java -version java version "1.4.2" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2) Classic VM (build 1.4.2, J2RE 1.4.2 IBM build cxia321420-20040626 (JIT enabled: jitc)) ----- That works for the Java 1.4.2, but my problem is with Java 1.3.1, same steps as you used for 1.4.2: $ uname -r 2.6.8-1.521 $ rpm -qa IBMJ* IBMJava2-JRE-1.3.1-7.0 $ ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. $ LD_ASSUME_KERNEL=2.2.5 ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. the real issue is an execshield bug. see if this helps: echo 0 > /proc/sys/kernel/exec-shield this is fixed in 541 and higher, but they aren't in rawhide yet I don't believe That appears to solve the problem: # /opt/IBMJava2-131/jre/bin/java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. # echo 0 > /proc/sys/kernel/exec-shield # /opt/IBMJava2-131/jre/bin/java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) mass update for old bugs: Is this still a problem with the 2.6.9 based update kernel ? java-1.4.2-ibm-1.4.2.0-1jpp_8rh seems to work well together with kernel-smp-2.6.9-1.681_FC3 The newest kernel seems to fix the issue. I've since upgraded to FC3, but java 1.3.1 seems to be playing nice with the new kernel: $ uname -r 2.6.9-1.681_FC3 $ /opt/IBMJava2-131/jre/bin/java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) # uname -r 2.6.11-1.35_FC3smp # cat /etc/redhat-release Fedora Core release 3 (Heidelberg) # pwd /opt/IBM/Workplace/AppServer/java/jre/bin # ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. # export LD_ASSUME_KERNEL=2.2.6 # ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. # unset LD_ASSUME_KERNEL # cat /proc/sys/kernel/exec-shield 2 # echo 0 > /proc/sys/kernel/exec-shield # ./java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) # echo BINGO BINGO # echo 2 > /proc/sys/kernel/exec-shield # ./java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. ... and upgrading to the latest FC3 updates kernel resolves this for me. I notice that the default value for exec-shield has changed from 2 to 1. # uname -r 2.6.12-1.1372_FC3smp # cat /proc/sys/kernel/exec-shield 1 # pwd /opt/IBM/Workplace/AppServer/java/jre/bin # ./java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803 Description of problem: Kernel: kernel-2.6.8-1.521 IBM JRE version: IBMJava2-JRE-1.3.1-7.0 With the previous kernel-2.6.7-1.494.2.2, IBM java 1.3.1 worked fine: java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) With the new kernel: $ /opt/IBMJava2-131/jre/bin/java -version JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. If I try the legacy VM work around: # echo 1 > /proc/sys/vm/legacy_va_layout # /opt/IBMJava2-131/jre/bin/java -version I get a seg fault: Segmentation fault Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Type /opt/IBMJava2-131/jre/bin/java -version 2. 3. Actual Results: JVMDG080: Cannot find class com/ibm/jvm/Trace Error occurred in diagnostics initialization(2) Could not create the Java virtual machine. # echo 1 > /proc/sys/vm/legacy_va_layout # /opt/IBMJava2-131/jre/bin/java -version Segmentation fault Expected Results: java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20040527a (JIT enabled: jitc)) Additional info: