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