|
Quick Lists
|
|
Bug ID:
|
6272923
|
|
Votes
|
0
|
|
Synopsis
|
CI wrongly reports array class as unloaded after constrained klass is reported as loaded
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
|
|
Release Fixed
|
mustang(b75)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
6573042
,
6626217
,
4761344
|
|
Submit Date
|
19-MAY-2005
|
|
Description
|
Hotspot crashes and outputs log and the attached console message.
CONFIGURATION :
- JDK : 6.0-ea36
- OS : WindowsXP SP1
REPRODUCE :
(1) Compile the attached .java file.
(2) Create jar files by the attached "build.bat"
(3) Launch the command
"java -server -Xcomp -XX:CompileOnly=Test.caller -XX:-Inline -cp Test.jar Test"
You will see the following message and hs_log file.
K:\tmp>java -server -Xcomp -XX:CompileOnly=Test.caller -XX:-Inline -cp Test.jar Test
Test...
class name = #
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6da84006, pid=220, tid=3216
#
# Java VM: Java HotSpot(TM) Server VM (1.6.0-ea-b36 compiled mode)
# Problematic frame:
# V [jvm.dll+0x1e4006]
#
# An error report file with more information is saved as hs_err_pid220.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
INVESTIGATION :
when c2 thread compiles Test.caller, invalid(incorrect) code for target variable
seems the cause of this crash.
Loader constraint related to the type of return value Target[] in Derived.callee
does not seem set correctly.
Then the class loader which loads Derived class fails to detect Target[] class
and data flow of "target" variable stays invalid("TOP" , means NULL).
The above invalid status can not be founded and code generated.
When the variable "target" is referred, VM crash or NullPointerException
seems occurs.
xxxxx@xxxxx 2005-05-19 08:18:07 GMT
|
|
Work Around
|
N/A
|
|
Evaluation
|
LibraryCallKit::inline_native_getClass() fails to handle top() receiver adequately.
xxxxx@xxxxx 2005-05-20 18:03:01 GMT
The above evaluation is incorrect.
When a signature includes an array, the loader constraint for an array is not properly added to the systemDictionary's constraint table.
In the supplied test case, this causes CI to incorrectly return an unloaded ciKlass for "[LTarget;" when finding the monomorphic method at the callee() call site. This then creates havoc with the C2 type system, which causes C2 to believe that the receiver of getClass() is TOP.
xxxxx@xxxxx 2005-05-23 22:55:40 GMT
Re-evaluation: the constraint table and the systemDictionary are correct. The function used to query them, find_constrained_array_or_instance_klass(), does not report a consistent answer in this case.
Posted Date : 2006-02-11 01:05:09.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |