JDK-4978984 : apps crash when run with AMD64 linux vm on RedHat AS 3.0 AMD 64 Opteron
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 5.0
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux_redhat_3.0
  • CPU: x86
  • Submitted: 2004-01-15
  • Updated: 2004-01-22
  • Resolved: 2004-01-22
Related Reports
Duplicate :  
Description
###@###.### 2004-01-15

J2SE Version (please include all output from java -version flag):
  java version "1.5.0-beta"
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b33)
  Java HotSpot(TM) Client VM (build 1.5.0-beta-b32, mixed mode)

Does this problem occur on J2SE 1.4 or 1.4.1 or 1.4.2?  Yes / No (pick one) No
  No.

Operating System Configuration Information (be specific):
  OS: Redhat Linux Advanced Server 3.0 out of the box installation (gcc 3.2.3)
                

Hardware Configuration Information (be specific):
  Hardware: Dual Processor AMD Opteron


Bug Description:
   Upon startup of a certain java program,  one of our processes (the first
    process to bring up) crashes on its way up, hs_err is attached. core file
    is generated but not very useful (below).

   Our application constists of Java code as well as Native code written in 
   C++. This application also uses two third party C++ shared libraries, one 
   is Talarian Smart Sockets, and the other one is object space.

   C++ code used on Opteron was compiled on IA 32 hardware using the same
   gcc (3.2.3) compiler. Java code was compiled on Solaris 8.

$ gdb java core.23690
GNU gdb Red Hat Linux (5.3.90-0.20030710.40rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...(no debugging symbols found)...Using host
libthread_db library "/lib64/tls/libthread_db.so.1".

Core was generated by `java -DORB.OrbName=ProdSysManAgent1sbtbc05a -DORB.PortNum=18039
-DORB.AltHostNa'.
Program terminated with signal 6, Aborted.
Reading symbols from /lib64/tls/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/tls/libpthread.so.0
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/tls/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/tls/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/java/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so...done.
Loaded symbols for /usr/java/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
Reading symbols from /lib64/tls/libm.so.6...done.
Loaded symbols for /lib64/tls/libm.so.6
Reading symbols from /usr/java/j2sdk1.5.0/jre/lib/amd64/native_threads/libhpi.so...done.
Loaded symbols for /usr/java/j2sdk1.5.0/jre/lib/amd64/native_threads/libhpi.so
Reading symbols from /lib64/libnsl.so.1...done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /usr/java/j2sdk1.5.0/jre/lib/amd64/libverify.so...done.
Loaded symbols for /usr/java/j2sdk1.5.0/jre/lib/amd64/libverify.so
Reading symbols from /usr/java/j2sdk1.5.0/jre/lib/amd64/libjava.so...done.
Loaded symbols for /usr/java/j2sdk1.5.0/jre/lib/amd64/libjava.so
Reading symbols from /usr/java/j2sdk1.5.0/jre/lib/amd64/libzip.so...done.
Loaded symbols for /usr/java/j2sdk1.5.0/jre/lib/amd64/libzip.so
#0  0x0000002a958b1305 in raise () from /lib64/tls/libc.so.6
(gdb) where
#0  0x0000002a958b1305 in raise () from /lib64/tls/libc.so.6
Cannot access memory at address 0x7fbfff6898

Steps to reproduce:
  
   


Comments
WORK AROUND Build the VM on a 64-bit Redhat AS 3.0 box. The initial bootstrap VM should be the 32-bit Linux VM. ###@###.### 2004-01-22 The above workaround is unnecessary. Just use b35. ###@###.### 2004-01-22
22-01-2004

EVALUATION A VM built on a Redhat AS 3.0 box works fine. There's likely some header file incompatibility between Redhat and Suse. ###@###.### 2004-01-22 It's not a header file incompatibility, rather it's a dup of 4969341. On Redhat, malloc'ed memory is not marked executable. Prior to tiger-beta2 build 35, the VM was generating a small amount of code into malloc'ed memory. The fix for 4969341 that went into b35 no longer does so, hence the b35 VM runs fine under 64-bit Redhat. I'm closing this bug as a dup of 4969341. ###@###.### 2004-01-22
22-01-2004