JDK-8144736 : TestOptionsWithRanges causes corrupted C heap.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2015-12-04
  • Updated: 2020-09-01
  • Resolved: 2015-12-04
Related Reports
Duplicate :  
Description
Testing invalid YoungGenerationSizeSupplementDecay values.
Command line: [C:\\local\\aurora\\CommonData\\JDK_DIR\\bin\\java.exe -cp C:\\local\\aurora\\CommonData\\JTREG_HOME\\lib\\javatest.jar;C:\\local\\aurora\\CommonData\\JTREG_HOME\\lib\\jtreg.jar;C:\\local\\aurora\\sandbox\\results\\workDir\\classes\\1\\runtime\\CommandLine\\OptionsValidation;C:\\local\\aurora\\CommonData\\TESTBASE\\hotspot\\test\\runtime\\CommandLine\\OptionsValidation;C:\\local\\aurora\\sandbox\\results\\workDir\\classes\\1\\testlibrary;C:\\local\\aurora\\sandbox\\results\\workDir\\classes\\1\\runtime\\CommandLine\\OptionsValidation\\common -client -XX:YoungGenerationSizeSupplementDecay=0 optionsvalidation.JVMOptionsUtils ]

----------System.err:(46/3084)*----------
TEST FAILED: Error processing option MallocVerifyInterval with valid value '-XX:MallocVerifyInterval=1'! JVM output reports a fatal error. JVM exited with code 1!
stdout content[C heap has been corrupted (time: 10326 allocations)
Comments
I think some change broke the heap and unlike the original TestOptionsWithRanges.java's purpose, we detected the heap corruption. The intend of TestOptionsWithRanges is checking whether the option value is valid or not. It simply calls '-version' with the option. In this case, 'MallocVerifyInterval=1' and it means we will verify heap every '1 malloc'. (This flag's range is (0, max_intx), so 1 is valid value)
04-12-2015