renaissance
renaissance copied to clipboard
db-shootout crashes with jdk-12
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.
Thanks @albertnetymk for the report. I don't think it's related to #153, it looks more like a JDK compatibility issue ( #127 ).
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)
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.