Uploaded image for project: 'Code Tools'
  1. Code Tools
  2. CODETOOLS-7902936

Stray output in forked VM breaks external version parsing

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P5 P5
    • None
    • None
    • tools
    • None
    • jmh

      Using JDK 16 on an old Debian Jessie server, I hit a failure in:

      {noformat}
      [error] at org.openjdk.jmh.util.Utils.readPropertiesFromCommand(Utils.java:603)
      [error] at org.openjdk.jmh.runner.Runner.newBenchmarkParams(Runner.java:469)
      [error] at org.openjdk.jmh.runner.Runner.getActionPlans(Runner.java:353)
      [error] at org.openjdk.jmh.runner.Runner.runBenchmarks(Runner.java:546)
      [error] at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:310)
      [error] at org.openjdk.jmh.runner.Runner.run(Runner.java:209)
      [error] Caused by: java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
      [error] at sun.util.xml.PlatformXmlPropertiesProvider.load(PlatformXmlPropertiesProvider.java:80)
      [error] at java.util.Properties$XmlSupport.load(Properties.java:1201)
      [error] at java.util.Properties.loadFromXML(Properties.java:881)
      [error] at org.openjdk.jmh.util.Utils.readPropertiesFromCommand(Utils.java:595)
      {noformat}

      Adding a diagnostic to this code path confirmed my suspicion that there was an unwanted guest in standard out.

      {noformat}
      [0.000s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /cpusets.
      <?xml version="1.0" encoding="UTF-8"?>
       <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
      {noformat}

      This particular problem could likely be fixed by changing the server, but only after the root cause is discovered.

      JMH could help out doing one or more of: a) adding a diagnostic to the exception with the content that failed parsing, b) passing `-XX:+IgnoreUnrecognizedVMOptions -Xlog:all=error` to silence this and other VM warnings, c) using a temporary file to receive the data rather than standard output.

      I'm happy to submit a patch.

            jzaugg Jason Zaugg
            jzaugg Jason Zaugg
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: