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

G1: UseNUMA may cause the JVM not to start if heap is too small

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4 P4
    • 25
    • 17, 21, 25
    • hotspot
    • gc
    • Fix Understood

      NUMA node migrations can cause more heap usage in g1 since we may have more open heap regions.

      During JVM initialization, NewSize may be so small that it only allows for a single G1 heap region. But we cannot expand Eden without a GC, and we cannot run a GC yet. If we exhaust NewSize before initialization is finished, we abort the JVM ("GC triggered before VM initialization completed. Try increasing NewSize...").

      A small default NewSize can cause this to happen if the OS happens to reschedule the initializing thread to a different NUMA node during initialization, since we would switch to a different G1AllocRegion and attempt to allocate a second HeapRegion.

      This is astronomically unlikely to happen, but not impossible.

            stuefe Thomas Stuefe
            stuefe Thomas Stuefe
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: