adoptium / adoptium/bumblebench

NullPointerException while Running DispatchBench.InnerClasses with JDK 11 Hotspot

Open
#14 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
27
Forks
32
PR merge metrics
No merged PRs in 30d

Description

### Problem Description

Running bumbleBench-DispatchBench-InnerClasses with JDK 11 Hotspot gives NullPointerException as shown below. This benchmark works with JDK 8 Hotpot and JDK 11 and 8 OpenJ9.

I'm trying to add BumbleBench targets for testing at Adopt as part of AdoptOpenJDK/openjdk-tests#1379.

### Error
```
18:12:19 ===============================================
18:12:19 Running test bumbleBench-DispatchBench-InnerClasses_0 ...
18:12:19 ===============================================
18:12:19 bumbleBench-DispatchBench-InnerClasses_0 Start Time: Fri Oct 11 22:12:19 2019 Epoch Time (ms): 1570831939782
18:12:19 Nothing to be done for setup.
18:12:19 variation: NoOptions
18:12:19 JVM_OPTIONS:
18:12:19 { itercnt=1; \
18:12:19 mkdir -p "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/bumbleBench-DispatchBench-InnerClasses_0"; \
18:12:19 cd "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/bumbleBench-DispatchBench-InnerClasses_0"; \
18:12:19 "/home/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/bin/java" -jar /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/perf/bumbleBench/bumblebench/BumbleBench.jar DispatchBench.InnerClasses; \
18:12:19 if [ $? -eq 0 ] ; then echo ""; echo "bumbleBench-DispatchBench-InnerClasses_0""_PASSED"; echo ""; cd /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../..; else echo ""; echo "bumbleBench-DispatchBench-InnerClasses_0""_FAILED"; echo ""; fi; } 2>&1 | tee -a "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/TestTargetResult";
18:12:20 Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass(Util.java:187)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.newInstanceOfPossiblyFreshlyLoadedClass(Util.java:223)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench$InnerClasses.getCallee(DispatchBench.java:126)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench.computeCallees(DispatchBench.java:39)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench.(DispatchBench.java:34)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench$InnerClasses.(DispatchBench.java:124)
18:12:20 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
18:12:20 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
18:12:20 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
18:12:20 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
18:12:20 at java.base/java.lang.Class.newInstance(Class.java:584)
18:12:20 at net.adoptopenjdk.bumblebench.core.Launcher.main(Launcher.java:55)
18:12:20 Caused by: java.lang.NullPointerException
18:12:20 at java.base/java.lang.reflect.Method.invoke(Method.java:559)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.readFully(Util.java:196)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass(Util.java:184)
18:12:20 ... 11 more
18:12:20
18:12:20 bumbleBench-DispatchBench-InnerClasses_0_FAILED
18:12:20
18:12:20 Nothing to be done for teardown.
18:12:20 bumbleBench-DispatchBench-InnerClasses_0 Finish Time: Fri Oct 11 22:12:20 2019 Epoch Time (ms): 1570831940345
18:12:20
18:12:20 ===============================================

```

### To Reproduce
1) Remove the implementation constraint for this test: bumbleBench-DispatchBench-InnerClasses (https://github.com/AdoptOpenJDK/openjdk-tests/blob/master/perf/bumbleBench/playlist.xml)
2) Use the bumbleBench-DispatchBench-InnerClasses target on TestKitGen with the relevant SDK

Contributor guide

Open the contributing guide

Research direction

Start with the JDK 11 HotSpot reproduction described in the issue, using the bumbleBench-DispatchBench-InnerClasses target and the implementation constraint in perf/bumbleBench/playlist.xml. Trace the stack from net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass/readFully (Util.java:184-196) through DispatchBench.java:126. Done means the target runs without the reported NullPointerException on JDK 11 HotSpot.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.