RFR: 7903596: jmh-java-benchmark-archetype generated benchmark fails at runtime - ERROR: Unable to find the resource: /META-INF/BenchmarkList

Jaikiran Pai jpai at openjdk.org
Fri Dec 1 12:59:59 UTC 2023


On Thu, 30 Nov 2023 06:43:21 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

> Can I please get a review of this change which proposes to address the issue noted in https://bugs.openjdk.org/browse/CODETOOLS-7903596?
> 
> As noted in that issue, when a benchmark generated using Java 22 is run, at runtime it fails with:
> 
> 
> java -jar target/benchmarks.jar
> Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
> 	at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
> 	at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
> 	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
> 	at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
> 	at org.openjdk.jmh.Main.main(Main.java:71)
> 
> 
> This is due to annotation processors being disabled by default during compilation starting Java 22. The commit in this PR, explicitly enables the `org.openjdk.jmh.generators.BenchmarkProcessor` annotation processor to allow for it to generate the necessary benchmark resources.
> 
> I've tested this change locally, with Java 8, Java 21 as well as Java 22 and the newly generated benchmark is now functional on all these versions.

I had a look at the Windows failures reported in GitHub actions job - they all appear to be:


test(org.openjdk.jmh.it.profilers.WinPerfAsmProfilerTest)  Time elapsed: 185.743 sec  <<< ERROR!
java.lang.IllegalStateException: Profile does not contain the required frame: PrintAssembly processed: 7 total address lines.

I'm unfamiliar with those tests, but the error doesn't suggest it's due to the changes in this PR. Would you happen to know, Aleksey?

-------------

PR Comment: https://git.openjdk.org/jmh/pull/125#issuecomment-1836077568


More information about the jmh-dev mailing list