JDK-8191373 : Multiple NUMA nodes expected
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 10
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • Submitted: 2017-11-15
  • Updated: 2020-09-01
  • Resolved: 2017-11-20
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 10
10 b34Fixed
Related Reports
Relates :  
Description
Test: runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (t:/workspace/open/src/hotspot/os/windows/os_windows.cpp:2796), pid=11308, tid=13484
#  assert(numa_node_list_holder.get_count() > 0) failed: Multiple NUMA nodes expected
#
# JRE version:  (10.0) (fastdebug build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 10-internal+0-2017-11-15-0409416.jesper.wilhelmsson.hs, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)

JavaTest Message: Test threw exception: java.lang.RuntimeException: 4 tests failed! (Error processing option NUMAInterleaveGranularity with valid value '-server -XX:+UseG1GC -XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536'! JVM output reports a fatal error. JVM exited with code 1!)
(Error processing option NUMAInterleaveGranularity with valid value '-server -XX:+UseG1GC -XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=8796093022208'! JVM output reports a fatal error. JVM exited with code 1!)
(Error processing option NUMAInterleaveGranularity with valid value '-server -XX:+UseG1GC -XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=2147483648'! JVM output reports a fatal error. JVM exited with code 1!)
(Error processing option NUMAInterleaveGranularity with valid value '-server -XX:+UseG1GC -XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=4294967296'! JVM output reports a fatal error. JVM exited with code 1!)


Comments
Just to clarify: This is an integration_blocker, but does not apply to the 2017.11.10 PIT since the fix for JDK-8189941 is not included in that PIT snapshot.
16-11-2017

Changed to P2 because os::reserve_memory() may return undefined results when -XX:+UseNUMA -XX:+UseNUMAInterleaving is specified on Windows.
15-11-2017

From the log files, the call stack is: Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+00a81a40] = 00a80950+ 240 ?platform_print_native_stack@os@@SA_NPEAVoutputStream@@PEBXPEADH@Z 0000000008a81950 f os_windows_x86.obj V [jvm.dll+00c43865] = 00c41b30+3381 ?report@VMError@@SAXPEAVoutputStream@@_N@Z 0000000008c42b30 f vmError.obj V [jvm.dll+00c44ad7] = 00c435c0+1303 ?report_and_die@VMError@@SAXHPEBD0PEADPEAVThread@@PEAEPEAX40H_K@Z 0000000008c445c0 f vmError.obj V [jvm.dll+00c4510d] = 00c440b0+ 93 ?report_and_die@VMError@@SAXPEAVThread@@PEBDH11PEAD@Z 0000000008c450b0 f vmError.obj V [jvm.dll+0052f748] = 0052e6d0+ 120 ?report_vm_error@@YAXPEBDH00ZZ 000000000852f6d0 f debug.obj V [jvm.dll+00a78866] = 00a77640+ 550 ?allocate_pages_individually@@YAPEAD_KPEADKK_N@Z 0000000008a78640 f os_windows.obj V [jvm.dll+00a7ead0] = 00a7d9b0+ 288 ?pd_reserve_memory@os@@CAPEAD_KPEAD0@Z 0000000008a7e9b0 f os_windows.obj V [jvm.dll+00a72bdc] = 00a71bc0+ 28 ?reserve_memory@os@@SAPEAD_KPEAD0@Z 0000000008a72bc0 f os.obj V [jvm.dll+00b2ab1f] = 00b29ae0+ 63 ?default_initialize@SafepointMechanism@@CAXXZ 0000000008b2aae0 f safepointMechanism.obj V [jvm.dll+00b2ac29] = 00b29c20+ 9 ?initialize@SafepointMechanism@@SAXXZ 0000000008b2ac20 f safepointMechanism.obj V [jvm.dll+00beda79] = 00bec930+ 329 ?create_vm@Threads@@SAJPEAUJavaVMInitArgs@@PEA_N@Z 0000000008bed930 f thread.obj V [jvm.dll+007b4544] = 007b3460+ 228 ?JNI_CreateJavaVM_inner@@YAJPEAPEAUJavaVM_@@PEAPEAXPEAX@Z 00000000087b4460 f jni.obj V [jvm.dll+007b740f] = 007b63f0+ 31 JNI_CreateJavaVM 00000000087b73f0 f jni.obj C [java.exe+0x3609] C [java.exe+0xe83f] C [java.exe+0xe9e6] C [KERNEL32.DLL+0x13d2] C [ntdll.dll+0x154e4] numa_node_list_holder.get_count() is initialized inside os::init_2(). Therefore, on Windows, no calls should be made to allocate_pages_individually() before os::init_2() has been called. This used to be the case, but this has been changed since JDK-8189941 was pushed into jdk/hs (around 2017-11-13 17:13:50 +0000). As a result, the TestOptionsWithRanges has been failing in the hs-nightlies since.
15-11-2017

This is an integration blocker because JDK-8189941 has only been pushed to jdk/hs but not jdk/jdk.
15-11-2017