JDK-8025592 : vm invocation tests assert: initialized <= length
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs25
  • Priority: P2
  • Status: Closed
  • Resolution: Not an Issue
  • OS: generic
  • CPU: generic
  • Submitted: 2013-09-27
  • Updated: 2013-11-20
  • Resolved: 2013-10-03
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.
Other
hs25Resolved
Related Reports
Relates :  
Relates :  
Description
Run the tests ins INTJDK-7604355, they are invocation tests.
All three: invokeinterface, invokevirtual and invokespecial assert

in initialize_vtable: 
assert(initialized <= _length) failed: vtable initialization failed
All are on an example: liek
A PUB, a.B PP, b.C PUB

I tested both CLASSFILE_VER = 51 and 52

This is a new failure, definitely there after 8014013, wasn't there several weeks ago, I did
not triage the exact introduction.

Note that prior to this change there was a bug in 
invokespecial only: assert in put_method_at called by initialize_vtable
assert(i >=0 && i < _length) failed: index out of bounds.
This worked in jdk7. I got back as far as jdk8b20 and still found failures, so
I didn't fully triage when this was introduced. The fix for the bug reported here may
leave the invokespecial other problem, if so, we need to file a separate bug for that.

But invokevirtual and invokeinterface used to pass.

While the technical ownership area is runtime, giving this to compiler as a probable
fallout of 8014013. Give it back to runtime if that is not the case.
Comments
Bug reported against very old version of test suite. Current test suite passes.
03-10-2013

I need more details on how to reproduce this. On a Mac, with an essentially vanilla checked-out fastdebug build, I pass: bash run.sh invokeinterface.Generator >& foo.log dr2chase:INVOKE dr2chase$ tail foo.log 39997| a.A UNDEF b.B UNDEF b.C UNDEF PRIV i.I | IAE IAE IAE IAE IAE IAE IAE 39998| ! a.A UNDEF b.B UNDEF b.C UNDEF PRIV i.I | IAE IAE IAE IAE IAE IAE IAE 39999| a.A UNDEF ! b.B UNDEF b.C UNDEF PRIV i.I | IAE IAE IAE IAE IAE IAE IAE 40000| ! a.A UNDEF ! b.B UNDEF b.C UNDEF PRIV i.I | IAE IAE IAE IAE IAE IAE IAE -------------------------------------------------------------------------------------------------------------------- # A.m() B.m() C.m() I.m() C pkgC B pkgB A pkgA Intf Method access modifiers Call site location Status EXECUTION STATUS: PASSED Java HotSpot(TM) 64-Bit Server VM warning: Performance bug: SystemDictionary lookup_count=4424145 lookup_length=17237842 average=3.896310 load=1.720515 dr2chase:INVOKE dr2chase$ echo $JDK /Users/dr2chase/work/jdk8tl-full/build/macosx-x86_64-normal-server-fastdebug/images/j2sdk-image dr2chase:INVOKE dr2chase$
01-10-2013