United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-8003720 : NPG: Method in interpreter stack frame can be deallocated

Details
Type:
Bug
Submit Date:
2012-11-20
Status:
Closed
Updated Date:
2014-01-14
Project Name:
JDK
Resolved Date:
2012-11-27
Component:
hotspot
OS:
Sub-Component:
runtime
CPU:
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs25
Fixed Versions:
hs25 (b11)

Related Reports
Backport:
Blocks:

Sub Tasks

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
After much discussion (and arm twisting) we think we should add the special oop closure.  Reassigning to Stefan.
                                     
2012-11-21
ILW = HLH => P2
                                     
2012-11-22
Patch out for review.
                                     
2012-11-23
URL:   http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/d0aa87f04bd5
User:  stefank
Date:  2012-11-27 11:46:33 +0000

                                     
2012-11-27
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/d0aa87f04bd5
User:  amurillo
Date:  2012-12-01 02:59:09 +0000

                                     
2012-12-01



Hardware and Software, Engineered to Work Together