RFR: 8077279: assert(ic->is_clean()) failed: IC should be clean

Stefan Johansson stefan.johansson at oracle.com
Fri Jun 12 08:55:42 UTC 2015


Hi,

Please review this change to fix:
https://bugs.openjdk.java.net/browse/JDK-8077279

Webrev:
http://cr.openjdk.java.net/~sjohanss/8077279/hotspot.00/

Summary:
While doing some extra G1 testing a couple of issues were found. I've 
been able to reproduce this specific assert but I suspect that both 
JDK-8077282 and JDK-8077283 are related as well.

The root cause of the problem is a patch that was made a few months back 
that made it possible to have nmethods allocated in a code heap that 
differs from the compile level of the given nmethod, see [1]. In the 
NMethodIterator used by G1 class unloading it is assumed that the 
nmethods have the same compile level as the code heap the are allocated 
in, which now is wrong. This can, under certain circumstances, lead to 
not all nmethods being cleaned correctly and then hit this assertion.

Testing:
* Built and tested in JPRT
* RBT run with using these testlists: 
jdk/test/:jdk,hotspot/test/:hotspot_all,vm.mlvm.testlist.

Thanks,
Stefan

[1] https://bugs.openjdk.java.net/browse/JDK-8072774


More information about the hotspot-compiler-dev mailing list