RFR 8085965: VM hangs in C2Compiler

Erik Österlund erik.osterlund at lnu.se
Thu Jun 11 13:19:29 UTC 2015

Hi Poonam,

Just out of curiosity, does this fix exactly the same problem for G1? I found the other day that it currently does not respect -Xnoclassgc and had to make workarounds for that so the C2 compiler wouldn’t hang, as can be seen in this webrev:
http://cr.openjdk.java.net/~eosterlund/g1_dynamic_elision/noclassgc/webrev.00/ <http://cr.openjdk.java.net/~eosterlund/g1_dynamic_elision/noclassgc/webrev.00/>


> On 10 Jun 2015, at 23:20, Poonam Bajaj Parhar <poonam.bajaj at oracle.com> wrote:
> Please review the code changes to fix:
> JDK-8085965: <https://bugs.openjdk.java.net/browse/JDK-8085965> VM hangs in C2Compiler 
> Problem and fix: 
> In JDK8, CMSClassUnloadingEnabled option which is used to control the class-unloading in CMS, was enabled by default. But if the user specifies -Xnoclassgc or -XX:-ClassUnloading on the command line then classes get unloaded but updating of subklasses/siblings links gets skipped by the ClassUnloading check in the following function:
> void Klass::clean_weak_klass_links(BoolObjectClosure* is_alive, bool 
>   clean_alive_klasses) { 
>    if (!ClassUnloading) { 
>      return; 
>    }
> which corrupts the class hierarchy links causing hangs and crashes. 
> This fix honors -XX:-ClassUnloading and -Xnoclassgc options and disables class unloading with CMS.
> Webrev: http://cr.openjdk.java.net/~poonam/8085965/webrev/ <http://cr.openjdk.java.net/~poonam/8085965/webrev/>
> Thanks,
> Poonam

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20150611/448b87b4/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3577 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20150611/448b87b4/smime.p7s>

More information about the hotspot-gc-dev mailing list