JDK-8079208 : gc/g1/TestLargePageUseForAuxMemory.java fails due to not considering page allocation granularity for setup
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8,9
  • Priority: P1
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-05-01
  • Updated: 2017-07-26
  • Resolved: 2015-06-24
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 b72Fixed
Related Reports
Relates :  
Sub Tasks
JDK-8079235 :  
Description
test gc/g1/TestLargePageUseForAuxMemory.java,
of the windows_x64_6.2-fastdebug-c2-hotspot_gc set,
is failing after merging jdk9/hs with jdk9/dev:

stderr: [java version "1.9.0-internal-fastdebug"
Java(TM) SE Runtime Environment (build 1.9.0-internal-fastdebug-20150501110205.amurillo.jdk9-hs-2015-04--b00)
Java HotSpot(TM) 64-Bit Server VM (build 1.9.0-internal-20150501110205.amurillo.jdk9-hs-2015-04--b00, mixed mode)
]
 exitValue = 0

java.lang.RuntimeException: 'G1 'Block offset table': pg_sz=4096' missing from stdout/stderr 

	at com.oracle.java.testlibrary.OutputAnalyzer.shouldContain(OutputAnalyzer.java:134)
	at TestLargePageUseForAuxMemory.checkSmallTables(TestLargePageUseForAuxMemory.java:46)
	at TestLargePageUseForAuxMemory.testVM(TestLargePageUseForAuxMemory.java:69)
	at TestLargePageUseForAuxMemory.main(TestLargePageUseForAuxMemory.java:116)
	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:502)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:92)
	at java.lang.Thread.run(Thread.java:745)

JavaTest Message: Test threw exception: java.lang.RuntimeException: 'G1 'Block offset table': pg_sz=4096' missing from stdout/stderr 

Comments
From the stack trace: at TestLargePageUseForAuxMemory.main(TestLargePageUseForAuxMemory.java:116) : testVM(heapSizeForCardTableUsingLargePages - HEAP_REGION_SIZE, false, true); i.e. it is supposedly testing a heap size (heapSizeForCardTableUsingLargePages - HEAP_REGION_SIZE = 1020M) where we should not try to use large pages for the card table (the card table size would be 2M - 8K). I think G1BlockOffsetSharedArray::compute_size/G1SATBCardTableLoggingModRefBS::compute_size/G1BlockOffsetSharedArray::compute_size rightfully rounds up on Windows (it is the only system where os::allocation_granularity() != os::page_size(). The test needs to be fixed to make the amount of memory added/removed from/to consider the allocation granularity. So yes, the previous fix was incomplete. I am still wondering why it only failed during PIT and not JPRT.
05-05-2015

Impact and Workaround increased to High since this is blocking jdk9/hs integration into jdk9/jdk9 (where a workaround is not an option), which makes this a P1.
04-05-2015

ILW = Low (we get large pages when we asked for it, but didn't expect it), Medium (only Windows?), Low (none needed) = P5
04-05-2015

Output from test: G1 'Block offset table': pg_sz=2097152 base=0x0000005278c00000 size=2097152 alignment=2097152 reqsize=2097152 Error message: java.lang.RuntimeException: 'G1 'Block offset table': pg_sz=4096' missing from stdout/stderr
01-05-2015

Looks like a duplicate of JDK-8077255 that had the same symptoms.
01-05-2015