United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6923002 assert(false,"this call site should not be polymorphic")
JDK-6923002 : assert(false,"this call site should not be polymorphic")

Details
Type:
Bug
Submit Date:
2010-02-03
Status:
Resolved
Updated Date:
2010-04-03
Project Name:
JDK
Resolved Date:
2010-03-02
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs17 (b10)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
C:/local/common/jdk/baseline/windows-amd64/bin/java -server -Xmixed -XX:DefaultMaxRAMFraction=8 -XX:-UseCompressedOops -XX:-PrintVMOptions -cp C:/local/common/testbase/6/vm/vm/bin/classes -agentlib:redefineClasses runtime.ParallelClassLoading.shared.ReflectionLoadingController -ITERATIONS 100 -DEBUG false -THREADS_COUNT 5 -classDir C:/local/common/testbase/6/vm/vm/bin/classes/runtime/ParallelClassLoading/shared/hierarchies/static-load/static-init/anonymous/simple -class custom.R% -provoke reflect -provoke newInstance -holdCLLock -loadedClasses custom.C1,custom.C2,custom.C3,custom.C4,custom.C5,custom.C6,custom.C7,custom.C8,custom.C9,custom.C10
[2010-02-03T15:40:22.62] Iteration #1 of 100, time left: 60 s
...
[2010-02-03T15:45:15.93] Iteration #27 of 10

bci: 5
0 aload_0
1 fast_agetfield 3 <delegate> <Lsun/reflect/ConstructorAccessorImpl;> 
4 aload_1
5 invokevirtual 4 <newInstance> <([Ljava/lang/Object;)Ljava/lang/Object;> 
  0   bci: 5    VirtualCallData     count(3360) entries(1)
                                    'sun/reflect/NativeConstructorAccessorImpl'(2820)
8 areturn
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=\ciMethod.cpp:450
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (C:\temp\jprt\P1\B\005653.kvn\source\src\share\vm\ci\ciMethod.cpp:450), pid=7836, tid=10044
#  Error: assert(false,"this call site should not be polymorphic")
#
# JRE version: 7.0-b81
# Java VM: OpenJDK 64-Bit Server VM (17.0-b07-2010-02-02-005653.kvn.6614597-fastdebug mixed mode windows-amd64 )

Current CompileTask:
C2: 70      java.lang.reflect.Constructor.newInstance([Ljava/lang/Object;)Ljava/lang/Object; (98 bytes)

VM Arguments:
jvm_args: -Xmixed -XX:DefaultMaxRAMFraction=8 -XX:-UseCompressedOops -XX:-PrintVMOptions -agentlib:redefineClasses 
java_command: runtime.ParallelClassLoading.shared.ReflectionLoadingController -ITERATIONS 100 -DEBUG false -THREADS_COUNT 5 -classDir C:/local/common/testbase/6/vm/vm/bin/classes/runtime/ParallelClassLoading/shared/hierarchies/static-load/static-init/anonymous/simple -class custom.R% -provoke reflect -provoke newInstance -holdCLLock -loadedClasses custom.C1,custom.C2,custom.C3,custom.C4,custom.C5,custom.C6,custom.C7,custom.C8,custom.C9,custom.C10
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=c:/local/30740.JDK7.NIGHTLY.VM+windows-amd64_server_mixed_vm.parallel_class_loading_phase2.testlist/results/ResultDir/anonymous-simple;C:/local/common/testbase/6/vm/vm/bin/classes;C:/local/common/jdk/baseline/windows-amd64/lib/tools.jar
PATH=c:\local\common\jdk\baseline\windows-amd64\bin;c:\local\common\jdk\baseline\windows-amd64\jre\bin\server;C;Windows\system32;c:\Cygwin\bin;c:\Cygwin\usr\bin;c:\local\common\jdk\baseline\windows-amd64\jre\bin;c:\local\common\testbase\6\vm\vm\bin\lib\windows-amd64\runtime\ParallelClassLoading\shared;.
LD_LIBRARY_PATH=C;C:\Cygwin\local\common\testbase\6\vm\vm\bin\lib\windows-amd64\runtime\ParallelClassLoading\shared;
SHELL=C:/Cygwin/bin/bash -o igncr
DISPLAY=vm-v240-01.sfbay:1



---------------  S Y S T E M  ---------------

OS: Windows 7 Build 7600 

CPU:total 2 (2 cores per cpu, 1 threads per core) family 15 model 33 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, mmxext, 3dnow, 3dnowext

Memory: 4k page, physical 16645664k(11175720k free), swap 33289432k(24076532k free)

vm_info: OpenJDK 64-Bit Server VM (17.0-b07-2010-02-02-005653.kvn.6614597-fastdebug) for windows-amd64 JRE (1.7.0), built on Feb  1 2010 17:03:32 by "Administrator" with MS VC++ 8.0 (VS2005)

time: Wed Feb 03 07:45:22 2010
elapsed time: 43 seconds

                                    

Comments
EVALUATION

ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/576e77447e3c,ChangeRequest=6923002
                                     
2010-02-07
PUBLIC COMMENTS

Problem:
After the 6614597 changes C2 expects that the MDO total count at the virtual
call site indicates only polimorphic case and the assert was added for that.
But ReceiverTypeData::follow_weak_refs() may clear a receiver information
in MDO leaving the data at strange state and causing assert.

Solution:
Clear the total count when a receiver information is cleared.
Also add method name for the assert output and record in logs a second
receiver even for polimorphic case.
Add the change for C1 profiling code on Sparc which I missed 
in 6614597 changes.
Fix assert code when run with tiered compilation.
Fix typo.
                                     
2010-02-07



Hardware and Software, Engineered to Work Together