JDK-8203032 : PrintMetaspaceDcmd fails: 'Non-Class:' missing from stdout/stderr
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2018-05-13
  • Updated: 2018-05-21
  • Resolved: 2018-05-15
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 11
11 b14Fixed
Related Reports
Relates :  
Description
runtime/Metaspace/PrintMetaspaceDcmd.java fails with RuntimeException "'Non-Class:' missing from stdout/stderr"

The test causes some output to be generated and then checks for expected content, and is complaining that it didn't find something that was expected.

Comments
A fix has been posted for review. http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2018-May/027918.html
15-05-2018

@Kim: > The explicit disabling of UseCompressedOops is part of Oracle's testing regime; we run some significant number of tests multiple times with various different options, including both enabling and disabling compressed oops, in order to ensure that both option states work. Ah, now I see what you do, you run jtreg with -javaoptions:-XX:-UseCompressedOops, yes? Okay, that way I was able to reproduce the bug and verify that my proposed fix actually works.
15-05-2018

The explicit disabling of UseCompressedOops is part of Oracle's testing regime; we run some significant number of tests multiple times with various different options, including both enabling and disabling compressed oops, in order to ensure that both option states work.
14-05-2018

There had been two issues: 1) I let the test run with -XX:+VerifyMetaspace, but that one is a debug only option, so the test fails in release build. Well, that was just stupid :) 2) The test requires the VM to be started with +UseCompressedClassPointers, and assumed +UseCompressedOops would be always set, because it is default. However, the test is started with CompressedOops explicitly turned off. I do not understand why but my assumtion is that it has to do with -XX:MaxRAMPercentage=8 and running on a big machine, where 8% of the available RAM would bring the VM above the max. 32G heapsize needed to have compressed oops.
14-05-2018

Thanks for reporting, guys. Should be easy to fix.
14-05-2018

I also observed the same failure in JDK11 build 13 on OEL platform. But failure reason is different: ----------System.err:(3/200)---------- Error: VM option 'VerifyMetaspace' is develop and is available only in debug version of VM. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
14-05-2018

[~stuefe] See attached non-class-log.txt. Also, I saw multiple failures across all platforms, though it didn't reproduce with default options, so it probably requires some additional options to trigger the failure. The log output includes the rerun command, which includes the set of options used in the failure. Hopefully that will be enough for you to reproduce it.
14-05-2018

Hi Kim, could you attach the output of the test please? Thanks!
14-05-2018

Possibly related to JDK-8201572, which changed some output related to metaspace.
13-05-2018