JDK-8242459 : ForceNUMA and only one available NUMA node hits a guarantee
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 15
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2020-04-09
  • Updated: 2020-08-12
  • Resolved: 2020-04-28
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15
15 b21Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
Running: numactl -m 0 -N 0   /localhome/javas/jdk-15-ootb/bin/java -XX:+UseNUMA -XX:+ForceNUMA -version

This guarantee is triggered:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (g1NUMAStats.cpp:34), pid=23874, tid=23877
#  guarantee(num_nodes > 1) failed: Number of nodes (1) should be set
#
# JRE version:  (15.0) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (15-internal+0-2020-03-28-1614273.stefan.johansson.hs, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x66185f]  G1NUMAStats::NodeDataArray::NodeDataArray(unsigned int)+0xdf
#
# Core dump will be written. Default location: /localhome/tests/gc-test-suite-2/core.23874
#
# An error report file with more information is saved as:
# /localhome/tests/gc-test-suite-2/hs_err_pid23874.log
#
#
Aborted (core dumped)

Comments
Invoked reproducer from description: no failure.
12-08-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/a0fb6a36b1fb User: kbarrett Date: 2020-04-28 07:11:21 +0000
28-04-2020

One option to fix this problem is to start removing the ForceNUMA option. The suspected reason for the existence of this option is to test NUMA code paths on non-NUMA machines; nowadays NUMA systems can be faked e.g. by virtualization (qemu) or specifically on Linux by the NUMA emulation possibility (or a combination thereof).
10-04-2020