JDK-8027631 : "unexpected profiling mismatch" error with new type profiling
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs25
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-10-31
  • Updated: 2023-12-05
  • Resolved: 2013-11-13
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.
JDK 8 Other Other
8Fixed hs25Fixed hs25,port-stage-ppc-aixFixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
'assert(false) failed: DEBUG MESSAGE: unexpected profiling mismatch' at macroAssembler_x86.cpp:627:
 * test : java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java
 
Comments
URL: http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/e6ba215af802 User: amurillo Date: 2013-11-15 18:50:51 +0000
15-11-2013

URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/e6ba215af802 User: roland Date: 2013-11-13 11:48:26 +0000
13-11-2013

The c1 profile collection code relies on the signature of the callee to figure out whether there’s a single possible class for an argument (to then not emit code that deal with conflicting profiles). The problem is that at a method handle invoke, a single call site can call different methods with different signature. So using the callee signature is not correct even though it can still be useful because it provides information about the types of arguments/return value. This change uses the signature from the call site to decide whether a single class is possible and the signature of the callee to improve the type of the arguments/return value more. The test case revealed another problem with profiling: profiling of arguments at a method handle call should skip over the first argument if the call is to a static method from a virtual method handle method because it’s not an argument at the call.
07-11-2013