renaissance icon indicating copy to clipboard operation
renaissance copied to clipboard

db-shootout crashes with jdk-12

Open albertnetymk opened this issue 5 years ago • 2 comments

Downloaded jdk-12.0.1+12 from https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot#x64_linux and renaissance jar from the release page.

Encountered the following crash with java -jar renaissance-mit-0.9.0.jar -r 1 db-shootout:

Error during tear-down: null
java.lang.NullPointerException
        at org.lmdbjava.bench.Chronicle$CommonChronicleMap.teardown(Chronicle.java:131)
        at org.lmdbjava.bench.Chronicle$Reader.teardown(Chronicle.java:210)
        at org.renaissance.database.DbShootout.tearDownAfterAll(DbShootout.scala:81)
        at org.renaissance.RenaissanceBenchmark.runBenchmark(RenaissanceBenchmark.java:97)
        at org.renaissance.RenaissanceSuite$.$anonfun$main$2(renaissance-suite.scala:308)
        at org.renaissance.RenaissanceSuite$.$anonfun$main$2$adapted(renaissance-suite.scala:306)
        at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
        at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
        at org.renaissance.RenaissanceSuite$.main(renaissance-suite.scala:306)
        at org.renaissance.RenaissanceSuite.main(renaissance-suite.scala)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.renaissance.Launcher.main(Launcher.java:18)
Exception occurred in org.renaissance.database.DbShootout@58ce9668: java.lang.NoSuchFieldException: override
java.lang.AssertionError: java.lang.NoSuchFieldException: override
        at net.openhft.chronicle.core.Jvm.setAccessible(Jvm.java:326)
        at net.openhft.chronicle.core.Jvm.getMethod0(Jvm.java:302)
        at net.openhft.chronicle.core.Jvm.getMethod(Jvm.java:296)
        at net.openhft.chronicle.core.OS.<clinit>(OS.java:78)
        at net.openhft.chronicle.map.ChronicleMapBuilder.<init>(ChronicleMapBuilder.java:206)
        at net.openhft.chronicle.map.ChronicleMapBuilder.of(ChronicleMapBuilder.java:280)
        at net.openhft.chronicle.map.ChronicleMap.of(ChronicleMap.java:71)
        at org.lmdbjava.bench.Chronicle$CommonChronicleMap.setup(Chronicle.java:118)
        at org.lmdbjava.bench.Chronicle$Reader.setup(Chronicle.java:204)
        at org.renaissance.database.DbShootout.setUpBeforeAll(DbShootout.scala:68)
        at org.renaissance.RenaissanceBenchmark.runBenchmark(RenaissanceBenchmark.java:74)
        at org.renaissance.RenaissanceSuite$.$anonfun$main$2(renaissance-suite.scala:308)
        at org.renaissance.RenaissanceSuite$.$anonfun$main$2$adapted(renaissance-suite.scala:306)
        at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
        at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
        at org.renaissance.RenaissanceSuite$.main(renaissance-suite.scala:306)
        at org.renaissance.RenaissanceSuite.main(renaissance-suite.scala)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.renaissance.Launcher.main(Launcher.java:18)
Caused by: java.lang.NoSuchFieldException: override
        at java.base/java.lang.Class.getDeclaredField(Class.java:2417)
        at net.openhft.chronicle.core.Jvm.setAccessible(Jvm.java:322)
        ... 22 more
The following benchmarks failed: db-shootout

PS: JDK11 doesn't crash, though. It's not super clear to me if this is related to #153.

albertnetymk avatar Jun 24 '19 20:06 albertnetymk

Thanks @albertnetymk for the report. I don't think it's related to #153, it looks more like a JDK compatibility issue ( #127 ).

farquet avatar Jun 26 '19 06:06 farquet

Small progress notice: I have tried upgrading net.openhft packages to 2.20 and that fails too:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access using Lookup on net.openhft.chronicle.core.Jvm (file:/home/vojta/mff/graal/renaissance/renaissance/harness-202316-18225653424851052513/database/lib/chronicle-core-2.20.7.jar) to class java.lang.reflect.AccessibleObject
WARNING: Please consider reporting this to the maintainers of net.openhft.chronicle.core.Jvm
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Benchmark 'db-shootout' failed with exception:
java.lang.NoSuchMethodError: net.openhft.chronicle.bytes.HeapBytesStore.uninitialized()Lnet/openhft/chronicle/bytes/HeapBytesStore;
	at net.openhft.chronicle.hash.serialization.impl.ByteArrayDataAccess.initTransients(ByteArrayDataAccess.java:46)
	at net.openhft.chronicle.hash.serialization.impl.ByteArrayDataAccess.<init>(ByteArrayDataAccess.java:42)
	at net.openhft.chronicle.hash.serialization.impl.SerializationBuilder.configureByDefault(SerializationBuilder.java:125)
	at net.openhft.chronicle.hash.serialization.impl.SerializationBuilder.<init>(SerializationBuilder.java:48)
	at net.openhft.chronicle.map.ChronicleMapBuilder.<init>(ChronicleMapBuilder.java:215)
	at net.openhft.chronicle.map.ChronicleMapBuilder.of(ChronicleMapBuilder.java:280)
	at net.openhft.chronicle.map.ChronicleMap.of(ChronicleMap.java:71)
	at org.lmdbjava.bench.Chronicle$CommonChronicleMap.setup(Chronicle.java:118)
	at org.lmdbjava.bench.Chronicle$Reader.setup(Chronicle.java:204)
	at org.renaissance.database.DbShootout.setUpBeforeAll(DbShootout.scala:64)
	at org.renaissance.harness.ExecutionDriver.executeBenchmark(ExecutionDriver.java:59)
	at org.renaissance.harness.RenaissanceSuite$.$anonfun$runBenchmarks$1(RenaissanceSuite.scala:133)
	at org.renaissance.harness.RenaissanceSuite$.$anonfun$runBenchmarks$1$adapted(RenaissanceSuite.scala:127)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.renaissance.harness.RenaissanceSuite$.runBenchmarks(RenaissanceSuite.scala:127)
	at org.renaissance.harness.RenaissanceSuite$.main(RenaissanceSuite.scala:104)
	at org.renaissance.harness.RenaissanceSuite.main(RenaissanceSuite.scala)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at org.renaissance.core.Launcher.loadAndInvokeHarnessClass(Launcher.java:114)
	at org.renaissance.core.Launcher.launchHarnessClass(Launcher.java:73)
	at org.renaissance.core.Launcher.main(Launcher.java:37)

vhotspur avatar Jun 07 '21 18:06 vhotspur

There have been significant library updates to db-shootout (see #412) so that it runs with JVM up to version 18, so this issue may be no longer relevant.

lbulej avatar Dec 14 '23 15:12 lbulej