ZGC: ZForwarding::verify() failing when checking for duplicates

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P4
    • 13
    • Affects Version/s: 13
    • Component/s: hotspot
    • gc
    • b16
    • generic
    • linux

      When -XX:+ZVerifyForwarding is enabled, the following failure is always observed:

      # Internal Error
      (/home/stumon01/repos/jdk/src/hotspot/share/gc/z/zForwarding.cpp:72),
      pid=13355, tid=13359
      # guarantee(entry.from_index() != other.from_index()) failed: Duplicate from

      Current thread (0x00007fd65c04f3a0): GCTaskThread "ZWorker#2" [stack:
      0x00007fd661542000,0x00007fd661642000] [id=13359]

      Stack: [0x00007fd661542000,0x00007fd661642000],
      sp=0x00007fd661640c30, free space=1019k
      Native frames: (J=compiled Java code, A=aot compiled Java code,
      j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x13729b2] ZForwarding::verify() const+0x1c6
      V [libjvm.so+0x13948c2] ZRelocate::work(ZRelocationSetParallelIterator*)+0x7a
      V [libjvm.so+0x139557d] ZRelocateTask::work()+0x27
      V [libjvm.so+0x139f55c] ZTask::GangTask::work(unsigned int)+0x38
      V [libjvm.so+0x135353b] GangWorker::run_task(WorkData)+0xab
      V [libjvm.so+0x13535f3] GangWorker::loop()+0x37
      V [libjvm.so+0x135327a] AbstractGangWorker::run()+0x3e
      V [libjvm.so+0x125ce2b] Thread::call_run()+0x195
      V [libjvm.so+0xfb9fae] thread_native_entry(Thread*)+0x1ee

      The code is iterating over every ZForwardingEntry, skipping the empty entries, however what it is checking against does include empty entries, which will happen to match.

            Assignee:
            Stuart Monteith
            Reporter:
            Stuart Monteith
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: