JDK-8000459 : assert(java_lang_String::is_instance(entry)) failure with various mlvm tests
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jvmti
  • Affected Version: hs24,hs25
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-10-05
  • Updated: 2013-07-18
  • Resolved: 2012-10-10
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
Description
Following mlvm tests fail with assert(java_lang_String::is_instance(entry)):

vm/mlvm/mixed/func/hprof/formatB
vm/mlvm/mixed/func/hprof/heapAll
vm/mlvm/mixed/func/hprof/heapDump

The assertion failure is reproducible on x86 and ppc.
Comments
On 10/04/2012 02:44 PM, John Rose wrote: > This is probably because the Unsafe object has been patched over a CONSTANT_String, using Unsafe.defineAnonymousClass. > > (The class loader should substitute CONSTANT_Object in such cases, if it doesn't now.) > > The assert needs to be detuned to allow this. The verifier already is; see 'is_pseudo_string_at'. > > ��� John
09-10-2012