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

Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false

XMLWordPrintable

    • gc
    • b28

        Shenandoah GC specific safepoints are scheduled by control thread, therefore, query from control thread should return false.

        I saw an assertion failure on x86_32, due to the wrong answer.

        # Internal Error (/home/zgu/ws/jdk/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:2036), pid=1410312, tid=1410328
        # assert(nworkers == ParallelGCThreads) failed: Use ParallelGCThreads within safepoints

        Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.so+0x14c3977] ShenandoahHeap::assert_gc_workers(unsigned int)+0x157
        V [libjvm.so+0x1497a9e] ShenandoahConcurrentGC::entry_evacuate()+0x8e
        V [libjvm.so+0x149a4de] ShenandoahConcurrentGC::collect(GCCause::Cause)+0x28e
        V [libjvm.so+0x14ac296] ShenandoahControlThread::service_concurrent_normal_cycle(GCCause::Cause)+0x96
        V [libjvm.so+0x14acddd] ShenandoahControlThread::run_service()+0x74d
        V [libjvm.so+0x9455c6] ConcurrentGCThread::run()+0x26
        V [libjvm.so+0x16c602a] Thread::call_run()+0xfa
        V [libjvm.so+0x12cd3d7] thread_native_entry(Thread*)+0x137
        C [libpthread.so.0+0x867e] start_thread+0xee

              zgu Zhengyu Gu
              zgu Zhengyu Gu
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: