Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8200731

Assert in rebuild remset closure uses the wrong liveness in informational text

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P5
    • Resolution: Won't Fix
    • Affects Version/s: 11
    • Fix Version/s: 11
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc

      Description

      in G1RemSet.cpp the assert that checks the liveness uses the wrong liveness when printing on error:

            assert(!hr->is_old() ||
                   top_at_rebuild_start == NULL ||
                   total_marked_bytes == _cm->liveness(region_idx) * HeapWordSize,
                   "Marked bytes " SIZE_FORMAT " for region %u (%s) in [bottom, TAMS) do not match liveness during mark " SIZE_FORMAT " "
                   "(" PTR_FORMAT " " PTR_FORMAT " " PTR_FORMAT ")",
                   total_marked_bytes, hr->hrm_index(), hr->get_type_str(), _cm->liveness(region_idx) * HeapWordSize,
                   p2i(hr->bottom()), p2i(top_at_mark_start), p2i(top_at_rebuild_start));

      i.e. the "_cm->liveness(region_idx) * HeapWordSize" should actually just be "hr->marked_bytes()".

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tschatzl Thomas Schatzl
                Reporter:
                tschatzl Thomas Schatzl
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: