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

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

XMLWordPrintable

    • b21
    • Not verified

        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.

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

                Created:
                Updated:
                Resolved: