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

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

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 13
    • 13
    • 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.

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

              Created:
              Updated:
              Resolved: