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

G1: Incorrect verification logic in G1ConcurrentMark::clear_next_bitmap

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 19
    • 16, 17, 18, 19
    • hotspot
    • gc
    • b31

        In `G1ConcurrentMark::clear_next_bitmap`:

        ```
        guarantee(!may_yield || cl.is_complete(), "Must have completed iteration when not yielding.");
        ```

        From the msg and the surroundong context, the intent is to check sth like:

        ```
        if (!may_yield) {
          assert(is_complete);
        }
        ```

        which should be `may_yield || is_complete`.

        With the current code on master, this verification will trigger in a situation where a Full GC tries to start while concurrent-mark is in its final phase, i.e.

        ```
          // Phase 7: Clear bitmap for next mark.
          phase_clear_bitmap_for_next_mark();
        ```

              ayang Albert Yang
              ayang Albert Yang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: