Skip to content

jaotc: Error: Failed compilation due to NullPointerException #290

Closed
@tianxiaogu

Description

@tianxiaogu

jaotc crashed in Oracle JDK 9.0.4+11 and failed compilation in OpenJDK head.

Command:

jaotc --output C0.so --compile-commands commands.txt --verbose C0.class

Files:

https://drive.google.com/open?id=1p2qRGKtRkayhoWdZG6tYdNSEaZfDWx3F

Output with JDK 9.0.4+11

time ../../jdk-9.0.4/bin/jaotc --output C0.so --compile-commands commands.txt --verbose C0.class
Compiling C0...
1 classes found (25 ms)
 Scanning C0
  added main([Ljava/lang/String;)V
6 methods total, 1 methods to compile (4 ms)
Freeing memory [used: 2.1 MB , comm: 8.0 MB , freeRatio ~= 73.3%] (21 ms)
Compiling with 8 threads
.#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fa81984615e, pid=11288, tid=11322
#
# JRE version: Java(TM) SE Runtime Environment (9.0+11) (build 9.0.4+11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (9.0.4+11, mixed mode, aot, tiered, jvmci, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# J 2351 c2 org.graalvm.compiler.phases.schedule.SchedulePhase$Instance.sortIntoList(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/util/ArrayList;Lorg/graalvm/compiler/graph/NodeMap;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Node;)V jdk.internal.vm.compiler@9.0.4 (153 bytes) @ 0x00007fa81984615e [0x00007fa819845760+0x00000000000009fe]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P" (or dumping to /home/t/Projects/JVMTesting/bugs/jaotc-jdk-20180125165244/core.11288)
#
# An error report file with more information is saved as:
# /home/t/Projects/JVMTesting/bugs/jaotc-jdk-20180125165244/hs_err_pid11288.log
Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)

real	1m56.242s
user	2m8.084s
sys	0m0.460s

Output with OpenJDK head

time ../../openjdk/jdk/build/linux-x86_64-normal-server-release/jdk/bin/jaotc --output C0.so --compile-commands commands.txt --verbose C0.class
Compiling C0.so...
1 classes found (229 ms)
 Scanning C0
  added main([Ljava/lang/String;)V
6 methods total, 1 methods to compile (6 ms)
Freeing memory [used: 4.3 MB , comm: 17.0 MB, freeRatio ~= 74.7%] (24 ms)
Compiling with 8 threads
.Error: Failed compilation: C0.main([Ljava/lang/String;)V: java.lang.NullPointerException
java.lang.NullPointerException
	at jdk.internal.vm.compiler/org.graalvm.compiler.graph.NodeClass$RawEdgesIterator.getInput(NodeClass.java:1042)
	at jdk.internal.vm.compiler/org.graalvm.compiler.graph.NodeClass$RawEdgesIterator.forward(NodeClass.java:981)
	at jdk.internal.vm.compiler/org.graalvm.compiler.graph.NodeClass$RawEdgesIterator.hasNext(NodeClass.java:974)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.schedule.SchedulePhase$Instance.scheduleEarliestIterative(SchedulePhase.java:743)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.schedule.SchedulePhase$Instance.run(SchedulePhase.java:167)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.schedule.SchedulePhase.run(SchedulePhase.java:126)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:47)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:195)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:40)
	at jdk.internal.vm.compiler/org.graalvm.compiler.virtual.phases.ea.EffectsPhase.runAnalysis(EffectsPhase.java:87)
	at jdk.internal.vm.compiler/org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.run(PartialEscapePhase.java:80)
	at jdk.internal.vm.compiler/org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase.run(PartialEscapePhase.java:42)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:195)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:137)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:203)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:195)
	at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:137)
	at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.emitFrontEnd(GraalCompiler.java:229)
	at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:172)
	at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:158)
	at jdk.aot/jdk.tools.jaotc.AOTBackend.compileGraph(AOTBackend.java:141)
	at jdk.aot/jdk.tools.jaotc.AOTBackend.compileMethod(AOTBackend.java:103)
	at jdk.aot/jdk.tools.jaotc.AOTCompilationTask.run(AOTCompilationTask.java:121)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:631)
	at java.base/java.lang.Thread.run(Thread.java:844)

 failed main([Ljava/lang/String;)V

0 methods compiled, 1 methods failed (103797 ms)
Freeing memory [used: 413.0 MB, comm: 1.8 GB , freeRatio ~= 77.4%] (17 ms)
Parsing compiled code (1 ms)
Freeing memory [used: 6.1 MB , comm: 17.0 MB, freeRatio ~= 64.2%] (22 ms)
Processing metadata (11 ms)
Freeing memory [used: 5.8 MB , comm: 17.0 MB, freeRatio ~= 66.1%] (15 ms)
Preparing stubs binary (0 ms)
Preparing compiled binary (0 ms)
.header: 57 bytes
.config: 40 bytes
.kls.offsets: 0 bytes
.meth.offsets: 0 bytes
.kls.dependencies: 0 bytes
.stubs.offsets: 964 bytes
.meth.metadata: 6792 bytes
.text: 21344 bytes
.code.segments: 165 bytes
.meth.constdata: 29152 bytes
.kls.got: 0 bytes
.cnt.got: 0 bytes
.meta.got: 0 bytes
.meth.state: 320 bytes
.oop.got: 0 bytes
.meta.names: 1874 bytes
Freeing memory [used: 5.8 MB , comm: 17.0 MB, freeRatio ~= 66.1%] (13 ms)
Creating binary: C0 (5 ms)
Freeing memory [used: 5.8 MB , comm: 17.0 MB, freeRatio ~= 66.1%] (15 ms)
Creating shared library: C0.so (3 ms)
Final memory   [used: 5.6 MB , comm: 17.0 MB, freeRatio ~= 66.9%]
Total time: 104757 ms

real	1m44.977s
user	1m56.680s
sys	0m0.444s

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions