<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <big>8024483 - assertion failure: (!mirror_alive || loader_alive)
      failed<br>
      <br>
      The default value of _should_unload_classes in CMSCollector is
      false.<br>
      The default value of CMSClassUnloadingEnabled is true (changed in
      jdk8)<br>
      and is used to set the root scanning options.  This inconsistency
      leads to<br>
      dead class loaders without unloading classes.<br>
      <br>
      The fix for 8024954 fixes (or works around) this inconsistency by
      resetting <br>
      the root scanning options based on _should_unload_classes.<br>
      <br>
      Additionally there is a missing call to
      update_should_unload_classes() in<br>
      the CMS foreground collector.  Adding the call allows the test for<br>
    </big><big>CMSClassUnloadingEnabled  to pass but may not be a
      complete fix.<br>
      <br>
      <a class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Ejmasa/8024483/webrev.00/">http://cr.openjdk.java.net/~jmasa/8024483/webrev.00/</a><br>
      <br>
    </big><big> <br>
      8024954: CMS: CMSClassUnloadingMaxInterval is not implemented
      correctly<br>
      <br>
      For 8024954 the classes used as roots was being set at
      initialization based on<br>
      the value of <span class="removed">CMSClassUnloadingEnabled</span>. 


      For a value of CMSClassUnloadingMaxInterval<br>
      greater than 1, the roots need to be set dynamically <br>
      (done in CMSCollector::setup_cms_unloading_and_verification_state
      with this fix).<br>
      <br>
      <a class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Ejmasa/8024954/webrev.01/">http://cr.openjdk.java.net/~jmasa/8024954/webrev.01/</a></big>
  </body>
</html>