Lazy query for current JVM args in Runner

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P4
    • None
    • Affects Version/s: None
    • Component/s: tools
    • None
    • jmh

      Runner.newBenchmarkParams() currently always ManagementFactory.getRuntimeMXBean().getInputArguments() in all modes. It requires ManagementPermission "monitor" in all cases.

      Consider
      java -jar micros-jdk8/target/micros-jdk8-1.0-SNAPSHOT.jar -f 1 -bm ss FileRead [OK]

      java -Djava.security.manager -Djava.security.policy=jmh-security-minimal-runner.policy -jar micros-jdk8/target/micros-jdk8-1.0-SNAPSHOT.jar -f 0 -bm ss FileRead [OK]

      Now if we remove the permission (jmh-security-minimal-runner-noman.policy)

      java -Djava.security.manager -Djava.security.policy=jmh-security-minimal-runner-noman.policy -jar micros-jdk8/target/micros-jdk8-1.0-SNAPSHOT.jar -f 1 -bm ss FileRead
      Exception in thread "main" java.security.AccessControlException: access denied ("java.lang.management.ManagementPermission" "monitor")
      ...

      But in case we pass JVM or benchmark parameters to forked VM (e.g. -jvmArgs ""), getRuntimeMXBean information is not required.

            Assignee:
            Dmitry Chuyko
            Reporter:
            Dmitry Chuyko
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: