JDK-4701482 : NullPointerException or VM crash on Intel x86 platform
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.0_02,1.4.1
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS:
    generic,linux_redhat_7.2,solaris_8,solaris_10,windows_xp generic,linux_redhat_7.2,solaris_8,solaris_10,windows_xp
  • CPU: generic,x86
  • Submitted: 2002-06-13
  • Updated: 2002-11-07
  • Resolved: 2002-08-28
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2 mantisFixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description

Name: ipR10196			Date: 06/12/2002


--------------------------------------
Test            : nsk/jvmpi/GetThreadStatus/thrstat003
TestBase        : testbase_nsk
VM              : server
Mode            : mixed
Platform        : x86
OS              : 5.8, Redhat Linux 7.2, Windows XP

----------------------------------------
Steps to reproduce 
================
1. cd /net/sqesvr.eng/export/vsn/GammaBase/Bugs/{BugID}
2. sh doit.sh $JAVA_HOME -server -Xmixed

This test exercises JVMPI function GetThreadStatus() for
three threads with different status.

While executing test on an Intel x86 platform with ServerVM in -Xmixed 
mode an NullPoinerException occured in the third thread's Java code:

class thrstat003c implements Runnable {
    public void run() {
        thrstat003.contendCount3++;
        while (thrstat003.contendCount3 != 2) {
            Thread.yield();   <--------------------- NullPointerException
        }
        Thread.yield(); // to have guaranteed Thread.yield();
        thrstat003.contendCount3++;
    }
}

and the test failed with error message:

  Thread thr3 (0x8190318) status expected: 0x4001, got: 0x1

Or sometimes VM crashes with the diagnostics:

#
# HotSpot Virtual Machine Error : 4
# Error ID : 4F530E43505002E6
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Server VM (1.4.1-beta-b14 mixed mode)
#
# An error report file has been saved as hs_err_pid6060.log.
# Please refer to the file for further information.
#

On ClientVM and in other VM modes the test passes successfully.

Here is test output with NullPointerException:
-----------------------------------------------------
java version "1.4.1-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b14)
Java HotSpot(TM) Server VM (build 1.4.1-beta-b14, mixed mode)
java.lang.NullPointerException
    at thrstat003c.run(thrstat003.java:190)
    at java.lang.Thread.run(Thread.java:536)
Thread thr3 (0x8190318) status expected: 0x4001, got: 0x1
Exit Code: 97
-----------------------------------------------------

Here is test crash output:
-----------------------------------------------------
java version "1.4.1-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b14)
Java HotSpot(TM) Server VM (build 1.4.1-beta-b14, mixed mode)

Unexpected Signal : 4 occurred at PC=0x4233F1F0
Function=[Unknown.]
Library=(N/A)

NOTE: We are unable to locate the function name symbol for the error
      just occurred. Please refer to release documentation for possible
      reason and solutions.


Current Java thread:

Dynamic libraries:
08048000-0804e000 r-xp 00000000 00:28 2335610    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/bin/java
0804e000-0804f000 rw-p 00005000 00:28 2335610    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/bin/java
40000000-40016000 r-xp 00000000 03:06 2272937    /lib/ld-2.2.4.so
40016000-40017000 rw-p 00015000 03:06 2272937    /lib/ld-2.2.4.so
40018000-40021000 r-xp 00000000 00:28 1323808    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/native_threads/libhpi.so
40021000-40022000 rw-p 00008000 00:28 1323808    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/native_threads/libhpi.so
40023000-4002d000 r-xp 00000000 03:06 2272977    /lib/libnss_files-2.2.4.so
4002d000-4002e000 rw-p 00009000 03:06 2272977    /lib/libnss_files-2.2.4.so
4002f000-4003c000 r-xp 00000000 03:06 1438996    /lib/i686/libpthread-0.9.so
4003c000-40044000 rw-p 0000c000 03:06 1438996    /lib/i686/libpthread-0.9.so
40044000-40047000 r-xp 00000000 03:06 2272956    /lib/libdl-2.2.4.so
40047000-40048000 rw-p 00002000 03:06 2272956    /lib/libdl-2.2.4.so
40048000-4017a000 r-xp 00000000 03:06 1438983    /lib/i686/libc-2.2.4.so
4017a000-4017f000 rw-p 00131000 03:06 1438983    /lib/i686/libc-2.2.4.so
40183000-40618000 r-xp 00000000 00:28 1839548    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/server/libjvm.so
40618000-40824000 rw-p 00494000 00:28 1839548    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/server/libjvm.so
40836000-40849000 r-xp 00000000 03:06 2272961    /lib/libnsl-2.2.4.so
40849000-4084a000 rw-p 00012000 03:06 2272961    /lib/libnsl-2.2.4.so
4084c000-4086e000 r-xp 00000000 03:06 1438994    /lib/i686/libm-2.2.4.so
4086e000-4086f000 rw-p 00021000 03:06 1438994    /lib/i686/libm-2.2.4.so
4086f000-4087f000 r-xp 00000000 00:28 982500     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libverify.so
4087f000-40881000 rw-p 0000f000 00:28 982500     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libverify.so
40881000-408a2000 r-xp 00000000 00:28 982502     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libjava.so
408a2000-408a4000 rw-p 00020000 00:28 982502     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libjava.so
408a4000-408b9000 r-xp 00000000 00:28 982504     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libzip.so
408b9000-408bb000 rw-p 00014000 00:28 982504     
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/i386/libzip.so
408bb000-41f87000 r--s 00000000 00:28 5241127    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/rt.jar
41fca000-41fe1000 r--s 00000000 00:28 5241034    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/sunrsasign.jar
41fe1000-42052000 r--s 00000000 00:28 5241039    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/jsse.jar
42052000-42065000 r--s 00000000 00:28 5241035    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/jce.jar
42065000-4232f000 r--s 00000000 00:28 5241125    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/charsets.jar
443d7000-443d9000 r-xp 00000000 00:12 1631569    
/home/ip138508/tmp/analyse/20020605/solx86/thrstat003_1/linux/libthrstat003.so
443d9000-443db000 rw-p 00001000 00:12 1631569    
/home/ip138508/tmp/analyse/20020605/solx86/thrstat003_1/linux/libthrstat003.so
443db000-443de000 r--s 00000000 00:28 2627600    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/ext/dnsns.jar
4c5e2000-4c60d000 r--p 00000000 03:06 1325143    /usr/lib/locale/en_US/LC_CTYPE
4c60d000-4c61b000 r--s 00000000 00:28 2627676    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/ext/ldapsec.jar
4c624000-4c62e000 r-xp 00000000 03:06 2272985    /lib/libnss_nisplus-2.2.4.so
4c62e000-4c62f000 rw-p 00009000 03:06 2272985    /lib/libnss_nisplus-2.2.4.so
4c62f000-4c639000 r-xp 00000000 03:06 2272982    /lib/libnss_nis-2.2.4.so
4c639000-4c63a000 rw-p 00009000 03:06 2272982    /lib/libnss_nis-2.2.4.so
4cbbf000-4cbdc000 r--s 00000000 00:28 2627599    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/ext/sunjce_provider.jar
4cbdc000-4cc7b000 r--s 00000000 00:28 2627602    
/.automount/alpheridies/root/export/VM/hopper/weekly/JDK/b14/linux-i586/jre/lib/ext/localedata.jar

Local Time = Wed Jun 12 09:07:58 2002
Elapsed Time = 3
#
# HotSpot Virtual Machine Error : 4
# Error ID : 4F530E43505002E6
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Server VM (1.4.1-beta-b14 mixed mode)
#
# An error report file has been saved as hs_err_pid6060.log.
# Please refer to the file for further information.
#
Exit Code: 0
-----------------------------------------------------
Error ID : 4F530E43505002E6 = os.cpp, 742

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: mantis FIXED IN: mantis INTEGRATED IN: mantis VERIFIED IN: mantis
14-06-2004

SUGGESTED FIX 1442,1443c1442,1444 < const Address monitor_block_top(ebp, frame::interpreter_frame_monitor_block_top_offset * wordSize); < __ movl(eax, monitor_block_top); // points to current entry, starting with top-most entry --- > const int entry_size = ( frame::interpreter_frame_monitor_size() * wordSize); > const Address monitor_block_bot(ebp, frame::interpreter_frame_initial_sp_offset * wordSize - entry_size); > __ leal(eax, monitor_block_bot); // points to bottom entry of monitor block Confusion abounds because of conflicting terminology of "top" and "bottom" of the monitor block across sparc and x86. Furthermore, on x86, the frame offsets for monitor_block_top and monitor_block_bot are confusing because top is pointer but bot is an address. ###@###.### 2002-06-20
20-06-2002

EVALUATION Method thrstat003a.run OSR's in a loop where there are 2 active locks. In the server VM, the monitor lock array from the interpreter stack is passed to the OSR nmethod so the monitors may be "fetched". On x86, the server VM has been passing the address of the topmost member of that array (lowest address) where it should be passing the address of the bottom member of that array (highest address). ###@###.### 2002-06-20
20-06-2002