JDK-8003720 : NPG: Method in interpreter stack frame can be deallocated
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2012-11-20
  • Updated: 2016-04-19
  • Resolved: 2012-11-27
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
8Fixed hs25Fixed
Related Reports
Blocks :  
Relates :  
Description
In virtual calls the Method pointer in the interpreter stack frame is not kept alive by anything other than the "this" pointers to that method.  If bytecodes overwrite the "this" pointer, then call a full GC, the class loader containing the Method* can be unloaded and the Method* deallocated.

This is also a problem with JSR292 MethodHandle static code because the MethodHandle containing the mirror for the interpreted method Method* is not on the stack if a GC occurs.
Comments
Patch out for review.
23-11-2012

ILW = HLH => P2
22-11-2012

After much discussion (and arm twisting) we think we should add the special oop closure. Reassigning to Stefan.
21-11-2012