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

OopMapSet::all_do does oms.next() twice during iteration

    XMLWordPrintable

Details

    • b21
    • Not verified

    Backports

      Description

        It seems to be introduced by JDK-8232083. New code does oms.next() twice:

            for (OopMapStream oms(map); !oms.is_done(); oms.next()) { // <--- here
              OopMapValue omv = oms.current();
              if (omv.type() != OopMapValue::derived_oop_value) {
                continue;
              }
              ...
              if (base_loc != NULL && *base_loc != NULL && !CompressedOops::is_base(*base_loc)) {
                derived_oop_fn(base_loc, derived_loc);
              }
              oms.next(); // <--- then here
            }

        We are seeing some weird, random, intermittent test failures with Shenandoah in jdk/jdk recently, this might explain it.

        Attachments

          Issue Links

            Activity

              People

                never Tom Rodriguez
                shade Aleksey Shipilev
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: