JDK-7152957 : VM crashes with assert(false) failed: bad AD file
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs24
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-03-12
  • Updated: 2013-06-26
  • Resolved: 2012-03-21
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 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Related Reports
Duplicate :  
Relates :  
Herer is hs_err:
;; Using jvm: "/export/local/common/jdk/baseline/linux-i586/jre/lib/i386/server/libjvm.so"
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/tmp/jprt/P1/213717.jcoomes/source/src/share/vm/opto/matcher.cpp:1512), pid=27319, tid=1787833200
#  assert(false) failed: bad AD file
# JRE version: 8.0-b29
# Java VM: Java HotSpot(TM) Server VM (24.0-b04-internal-201203092137.jcoomes.hs24-b04-set-ver-fastdebug mixed mode linux-x86 )
# Core dump written. Default location: /export/local/58685.JDK7.NIGHTLY.VM_linux-i586_bigapps_server_mixed_runThese/results/runThese/core or core.27319
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp

EVALUATION http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/61b82be3b1ff

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/61b82be3b1ff

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/61b82be3b1ff

EVALUATION The problem here is Matcher::has_match_rule() will return true even if mach instruction's predicate is false. Caused by changes for 6658428: case vmIntrinsics::_bitCount_i: + if (!Matcher::has_match_rule(Op_PopCountI)) return NULL; + break; + case vmIntrinsics::_bitCount_l: - if (!UsePopCountInstruction) return NULL; + if (!Matcher::has_match_rule(Op_PopCountL)) return NULL; + break; C2 tries to generate instruction popcnt which doesn't supported by hardware: o151 PopCountI === _ o102 [[o152 94 ]] --N: o151 PopCountI === _ o102 [[o152 94 ]] --N: o102 LoadI === o309 o7 o101 [[o114 o151 ]] @int[int:>=0]:exact+any *, idx=7; #int CPU:total 16 (4 cores per cpu, 1 threads per core) family 6 model 15 stepping 11, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, tsc