Bug 130868 - Kernel 2.6.8-1.521 and IBM Java 1.3.1 don't work together
Summary: Kernel 2.6.8-1.521 and IBM Java 1.3.1 don't work together
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 2
Hardware: i686
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Dave Jones
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-08-25 13:53 UTC by Kent Pirkle
Modified: 2015-01-04 22:09 UTC (History)
5 users (show)

Fixed In Version: FC3
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-08-16 18:30:46 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Kent Pirkle 2004-08-25 13:53:39 UTC
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:

Comment 1 Ernie McCracken 2004-08-25 15:20:58 UTC
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/



Comment 2 Ernie McCracken 2004-08-31 14:00:33 UTC
Use LD_ASSUME_KERNEL=2.2.5 as a workaround.

Comment 3 Kent Pirkle 2004-08-31 16:56:01 UTC
I tried that, it worked for the previous kernel, not for 2.6.8

Comment 4 Ernie McCracken 2004-08-31 19:32:26 UTC
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))

-----

Comment 5 Kent Pirkle 2004-08-31 20:48:58 UTC
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.


Comment 6 Chip Turner 2004-09-05 20:46:59 UTC
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

Comment 7 Kent Pirkle 2004-09-05 23:30:02 UTC
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))


Comment 8 Dave Jones 2004-11-27 20:24:46 UTC
mass update for old bugs:

Is this still a problem with the 2.6.9 based update kernel ?


Comment 9 David Juran 2004-11-28 15:59:09 UTC
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

Comment 10 Kent Pirkle 2004-12-01 00:39:10 UTC
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))


Comment 11 Brett Randall 2005-07-21 10:32:12 UTC
# 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.


Comment 12 Brett Randall 2005-07-21 23:03:40 UTC
... 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))



Note You need to log in before you can comment on or make changes to this bug.