RFR: 8067247: Crash: assert(method_holder->data() == 0 ...) failed: a) MT-unsafe modification of inline cache

Jamsheed C m jamsheed.c.m at oracle.com
Thu Mar 24 21:05:59 UTC 2016


Hi All,

Request for review,

bug url:  https://bugs.openjdk.java.net/browse/JDK-8067247

webrevs:
fix:
    jdk part:  http://cr.openjdk.java.net/~jcm/8067247/webrev.jdk.00/

newly added test case
  hotspot part:
     http://cr.openjdk.java.net/~jcm/8067247/webrev.hs.00/
  under hs-comp/test
     http://cr.openjdk.java.net/~jcm/8067247/webrev.hs_comp.00/

Unit Test: test/compiler/jsr292/misc/gc/MHInvokeTest.java
Testing: JPRT with new test case, with fix, without fix

Problem Summary:  MH.invoke linksite take assistance of java code to get 
an adapter method. Here a new method holder class and a adapter method 
are created for a MT and lform instance is cached.
Normally this cached lform get returned for a linksite request of same 
MT.  When these cached lform get collected(due to memory pressure),  a 
new class and method gets created for same MT(even though old method 
holder class and  adapter method are live).
Fix Summary: Kept a strong reference to lform instance in adapter method 
holder class of  MT.

Best Regards,
Jamsheed






More information about the hotspot-compiler-dev mailing list