JDK-4651032 : Week ahead :: 64 bit VM crashes in vframeArray.cpp, 83
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.1
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris_8
  • CPU: sparc
  • Submitted: 2002-03-12
  • Updated: 2002-04-17
  • Resolved: 2002-04-12
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.1 hopperFixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Description
Testcases failing:
nsk/stress/jck12a/jck12a015
nsk/stress/jck12a/jck12a016

OS : Solsparc 5.9 and Solsparc 5.8

Mode :  -Xcomp

VM type : 64 bit Server VM

Test : ArrayWrite

How to reproduce :
cd /net/sqesvr/export/vsn/GammaBase/Bugs/<bugid>
   sh doit.sh 

Output :
#
# HotSpot Virtual Machine Error, Internal Error
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20020308105420.jmasa.baseline-fastdebug-debug compiled mode)
#
# ShouldNotReachHere()
#
# Error happened during: deoptimize frame
#
# Error ID: /net/balvenie.sfbay/export/imgr_home/ws/20020308105420.jmasa.baseline/src/share/vm/runtime/vframeArray.cpp, 83 [ Patched ]
#
# Problematic Thread: prio=5 tid=0x100128948 nid=0x1 waiting on monitor 
#
Dumping core....
Abort - core dumped

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

EVALUATION John Coomes recent speedup work on BitMap.hpp used an expression like "1 << (uintptr_t)X" which unfortunately shifts only the low 32 bits. For values of X from 32-63 it truncates. The compiler BitMap to handle liveness of Java locals, this allowed locals beyond 32 in the 64-bit VM to get killed when they were live, and worse: killing local 32 instead kills local 0, the receiver. Fixed by casting the 1 to (uintptr_t)1. ###@###.### 2002-03-15
15-03-2002