JDK-8145000 : TestOptionsWithRanges.java failure for XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-12-09
  • Updated: 2017-07-26
  • Resolved: 2016-01-08
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 9
9 b105Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
TEST FAILED: Error processing option NUMAInterleaveGranularity with valid value '-XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536'! JVM output reports a fatal error. JVM exited with code 1!
stdout content[# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=\\virtualspace.cpp:287
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (C:\\jprt\\T\\P1\\214436.mikael\\s\\hotspot\\src\\share\\vm\\memory\\virtualspace.cpp:287), pid=87880, tid=57304
#  fatal error: cannot protect protection page
#
# JRE version:  (9.0) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (9-internal+0-2015-12-08-214436.mikael.8144881, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Core dump will be written. Default location: C:\\local\\aurora\\sandbox\\results\\workDir\\runtime\\CommandLine\\OptionsValidation\\TestOptionsWithRanges\\hs_err_pid87880.mdmp
#
# An error report file with more information is saved as:
# C:\\local\\aurora\\sandbox\\results\\workDir\\runtime\\CommandLine\\OptionsValidation\\TestOptionsWithRanges\\hs_err_pid87880.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
]
stderr content[Java HotSpot(TM) 64-Bit Server VM warning: NUMA page allocation failed
Java HotSpot(TM) 64-Bit Server VM warning: NUMA page allocation failed
Java HotSpot(TM) 64-Bit Server VM warning: NUMA page allocation failed
]

java.lang.RuntimeException: 1 tests failed! (Error processing option NUMAInterleaveGranularity with valid value '-XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536'! JVM output reports a fatal error. JVM exited with code 1!)
 (assert failed: 1 == 0)
	at jdk.test.lib.Asserts.error(Asserts.java:447)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:374)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:169)
	at jdk.test.lib.Asserts.assertEQ(Asserts.java:143)
	at TestOptionsWithRanges.main(TestOptionsWithRanges.java:160)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:520)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:92)
	at java.lang.Thread.run(Thread.java:747)

JavaTest Message: Test threw exception: java.lang.RuntimeException: 1 tests failed! (Error processing option NUMAInterleaveGranularity with valid value '-XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536'! JVM output reports a fatal error. JVM exited with code 1!)
 (assert failed: 1 == 0)
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.RuntimeException: 1 tests failed! (Error processing option NUMAInterleaveGranularity with valid value '-XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536'! JVM output reports a fatal error. JVM exited with code 1!) (assert failed: 1 == 0)

Comments
Bugs found by nightly testing. Verified by passed nightly.
26-07-2017

This is a problem of disjoint heap base + NUMInterleaveGranularity. Even the default value of NUMAInterleaveGranularity also fails when we try to reserve a heap for disjoint heap base mode. We reserve a heap of contiguous space with multiple chunks based on NUMAInterleaveGranularity flag. But when we want to protect that area, we try to protect that area at once. MSDN describes to call the protect API same manner as we reserved that area.
15-12-2015