JDK-6723160 : Nightly failure: Error: meet not symmetric
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs14
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2008-07-07
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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 Availabitlity Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs14Fixed
Related Reports
Relates :  
Relates :  
Relates :  
It seems, my fix for 6716441 was not complete.


=== Meet Not Symmetric ===
VM option '-PrintVMOptions'
VM option 'CompileThreshold=100'
t   =                   java/util/HashMap:AnyNull:exact *,iid=108
this=                   java/util/LinkedHashMap:AnyNull:exact *,iid=top
mt=(t meet this)=       java/util/HashMap:NotNull:exact *,iid=108
t_dual=                 java/util/HashMap:NotNull:exact *,iid=108
this_dual=              java/util/LinkedHashMap:NotNull:exact *
mt_dual=                java/util/HashMap:AnyNull:exact *,iid=108
mt_dual meet t_dual=    java/util/HashMap:NotNull:exact *,iid=108
mt_dual meet this_dual= java/util/HashMap:NotNull *
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/tmp/jprt-jprtadm/temp/P1/B/010325.kvn/source/src/share/vm/opto/type.cpp:531), pid=25461, tid=7
#  Error: meet not symmetric
# Java VM: OpenJDK 64-Bit Server VM (14.0-b01-2008-07-04-010325.kvn.6684714-last-fastdebug compiled mode solaris-sparc )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

---------------  T H R E A D  ---------------

Current thread (0x0000000100265000):  JavaThread "CompilerThread0" daemon [_thread_in_native, id=7, stack(0xffffffff6ba00000,0xffffffff6bb00000)]

Stack: [0xffffffff6ba00000,0xffffffff6bb00000],  sp=0xffffffff6baf87d0,  free space=993k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1243544];;  __1cHVMErrorOreport_and_die6M_v_+0x804
V  [libjvm.so+0x56381c];;  __1cMreport_fatal6Fpkci1_v_+0x74
V  [libjvm.so+0x1102cd8];;  __1cETypeEmeet6kMpk0_2_+0x5d0
V  [libjvm.so+0x110f0b4];;  __1cKTypeOopPtrGfilter6kMpknEType__3_+0x2c
V  [libjvm.so+0x527874];;  __1cSConstraintCastNodeFValue6kMpnOPhaseTransform__pknEType__+0x1a4
V  [libjvm.so+0xef8f98];;  __1cMPhaseIterGVNNtransform_old6MpnENode__2_+0x7c8
V  [libjvm.so+0xef7b80];;  __1cMPhaseIterGVNIoptimize6M_v_+0x2b0
V  [libjvm.so+0x4a9714];;  __1cHCompileIOptimize6M_v_+0x1cc
V  [libjvm.so+0x4a37ac];;  __1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod_ibb_v_+0x21e4
V  [libjvm.so+0x2f8128];;  __1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_+0x88
V  [libjvm.so+0x4bdcec];;  __1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_+0x198c
V  [libjvm.so+0x4bb548];;  __1cNCompileBrokerUcompiler_thread_loop6F_v_+0xd10
V  [libjvm.so+0x10dbf44];;  __1cKJavaThreadRthread_main_inner6M_v_+0x224
V  [libjvm.so+0x10dbcfc];;  __1cKJavaThreadDrun6M_v_+0x564
V  [libjvm.so+0xe5ab34];;  java_start+0x1c4

Current CompileTask:
C2:6435   b  sun.security.provider.PolicyFile.getPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection; (13 bytes)

SUGGESTED FIX Add missing _instance_id settings. Also: Replaced klass exactness settings for types with instance_id with asserts. Add explicit casts to klass exactness and ptr type where we do instance_id casting. Mark DecodeN and EncodeP nodes as expensive to avoid their rematerialization. Change CallNode::may_modify() to always return false for types with instance_id since scalar-replaceable allocations are not passed as arguments (otherwise they will be not scalar-replaceable). In flatten_alias_type() preserve klass exactness and non-nullness for types with instance_id, both arrays and instances. Flatten only array's elements access to have only one alias type. Set instance_id to InstanceBot (default value) for regular types. Update inputs of original memory phis in EA split_unique_types() to avoid intermixing unique instances and general memory operations. Otherwise we got the assert in SuperWord::mem_slice_preds(). Add more complex search of scalar-replaceable object's fields values through phis during the allocation elimination. Added the regression tests for 6724218 since the bug was fixed in HS14 as part of 6714694 fix.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/02a35ad4adf8

EVALUATION Missing settings _instance_id value to InstanceBot in TypeInstPtr::xmeet() and TypeAryPtr::xmeet().