<div dir="ltr">Hi Doug,<div><br></div><div><p style="box-sizing:border-box;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;margin-top:0px">The following program can trigger the<span> </span><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">NullPointerException</code><span> </span>(<wbr>without<span> </span><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">-J-Xcomp</code>) or crash the JVM (with<span> </span><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">-J-Xcomp</code>) in about *5* minutes on my Mac.</p><p style="box-sizing:border-box;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;margin-top:0px">I have also updated the bug report at <a href="https://github.com/oracle/graal/issues/290">https://github.com/oracle/graal/issues/290</a></p><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;margin-top:0px;margin-bottom:16px;word-wrap:normal;padding:16px;overflow:auto;line-height:1.45;background-color:rgb(246,248,250);border-radius:3px;color:rgb(36,41,46);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0px;margin:0px;background:transparent;border-radius:3px;word-break:normal;white-space:pre-wrap;border:0px;display:inline;overflow:visible;line-height:inherit;word-wrap:normal">public class Test {

    public static void M3() {
        M3();
        M3();
        M3();
    }

    public static void main(String[] args) {
        M3();
        M3();
    }
}
</code></pre><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Options:</p><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;margin-top:0px;margin-bottom:16px;word-wrap:normal;padding:16px;overflow:auto;line-height:1.45;background-color:rgb(246,248,250);border-radius:3px;color:rgb(36,41,46);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0px;margin:0px;background:transparent;border-radius:3px;word-break:normal;white-space:pre-wrap;border:0px;display:inline;overflow:visible;line-height:inherit;word-wrap:normal">--compile-commands commands-test.txt -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=10
</code></pre><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">commands-test.txt</code></p><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;margin-top:0px;margin-bottom:16px;word-wrap:normal;padding:16px;overflow:auto;line-height:1.45;background-color:rgb(246,248,250);border-radius:3px;color:rgb(36,41,46);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0px;margin:0px;background:transparent;border-radius:3px;word-break:normal;white-space:pre-wrap;border:0px;display:inline;overflow:visible;line-height:inherit;word-wrap:normal">compileOnly Test.main.*
</code></pre><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Log:</p><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;margin-top:0px;word-wrap:normal;padding:16px;overflow:auto;line-height:1.45;background-color:rgb(246,248,250);border-radius:3px;color:rgb(36,41,46);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;margin-bottom:0px"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;padding:0px;margin:0px;background:transparent;border-radius:3px;word-break:normal;white-space:pre-wrap;border:0px;display:inline;overflow:visible;line-height:inherit;word-wrap:normal">tianxiaogu@~/Downloads/jasmin-<wbr>2.4/graal-290 >>> ~/Projects/hs/build/macosx-<wbr>x86_64-normal-server-release/<wbr>images/jdk/bin/jaotc --output Test.so  --compile-commands commands-test.txt -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=10  -J-Xcomp Test.class
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000011b2d8ab5, pid=87625, tid=9735
#
# JRE version: OpenJDK Runtime Environment (10.0) (build 10-internal+0-adhoc.<wbr>tianxiaogu.hs)
# Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.<wbr>tianxiaogu.hs, compiled mode, tiered, jvmci, compressed oops, g1 gc, bsd-amd64)
# Problematic frame:
# J 10065 c2 org.graalvm.compiler.graph.<wbr>Edges.getNodeListUnsafe(Lorg/<wbr>graalvm/compiler/graph/Node;J)<wbr>Lorg/graalvm/compiler/graph/<wbr>NodeList; jdk.internal.vm.compiler@10-<wbr>internal (12 bytes) @ 0x000000011b2d8ab5 [0x000000011b2d8aa0+<wbr>0x0000000000000015]
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/tianxiaogu/Downloads/<wbr>jasmin-2.4/graal-290/hs_err_<wbr>pid87625.log
Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled
#
# If you would like to submit a bug report, please visit:
#   <a href="http://bugreport.java.com/bugreport/crash.jsp" target="_blank">http://bugreport.java.com/<wbr>bugreport/crash.jsp</a>
#
Abort trap: 6
tianxiaogu@~/Downloads/jasmin-<wbr>2.4/graal-290 >>> ~/Projects/hs/build/macosx-<wbr>x86_64-normal-server-release/<wbr>images/jdk/bin/jaotc --output Test.so  --compile-commands commands-test.txt -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=10   Test.class
Error: Failed compilation: Test.main([Ljava/lang/String;)<wbr>V: java.lang.NullPointerException
tianxiaogu@~/Downloads/jasmin-<wbr>2.4/graal-290 >>> </code></pre><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 29, 2018 at 1:55 AM, Doug Simon <span dir="ltr"><<a href="mailto:doug.simon@oracle.com" target="_blank">doug.simon@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think I using a different C0.class than you based on the output from jaotc:<br>
<br>
(yours)  added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
(mine)   added M2([Ljava/lang/Number;[CLjava/<wbr>lang/Comparable;[F[Ljava/lang/<wbr>Character;[S)Z<br>
<br>
I was using the one from <a href="https://github.com/oracle/graal/issues/290" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/issues/290</a> but now see you're probably referring to the one at <a href="https://drive.google.com/drive/folders/1u9O3uPkvucX6PWQkMFER3NAUWIR_KglE" rel="noreferrer" target="_blank">https://drive.google.com/<wbr>drive/folders/<wbr>1u9O3uPkvucX6PWQkMFER3NAUWIR_<wbr>KglE</a>. Sorry for the confusion.<br>
<br>
Can you please open a separate github issue for this particular C0.class and attach it to the issue so that we avoid this kind of confusion in future.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Doug<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On 29 Jan 2018, at 08:29, Tianxiao Gu <<a href="mailto:tianxiao.gu@gmail.com">tianxiao.gu@gmail.com</a>> wrote:<br>
><br>
> Hi Doug,<br>
><br>
> I can still reproduce it with OpenJDK head (<a href="http://hg.openjdk.java.net/jdk/hs/" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/<wbr>jdk/hs/</a>) and the nightly build from (<a href="https://adoptopenjdk.net/nightly.html?variant=openjdk10" rel="noreferrer" target="_blank">https://adoptopenjdk.net/<wbr>nightly.html?variant=openjdk10</a><wbr>).<br>
><br>
> Maybe you can use a larger InlineDuringParsingMaxDepth (e.g., 9 or 10) or disable -Xcomp. Give me some time I will try to create a Graal test case.<br>
><br>
> tianxiaogu@~/Projects/hs >>> hg path<br>
> default = <a href="http://hg.openjdk.java.net/jdk/hs/" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/<wbr>jdk/hs/</a><br>
> tianxiaogu@~/Projects/hs >>> hg id<br>
> f43576cfb273+ tip<br>
><br>
><br>
> tianxiaogu@~/Dropbox/OpenJDK/<wbr>jaotc/LongCompileTime1 >>> ~/Projects/hs/build/macosx-<wbr>x86_64-normal-server-release/<wbr>images/jdk/bin/jaotc --output C0.so  -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt --verbose  C0.class<br>
><br>
> Compiling C0.so...<br>
> 1 classes found (87 ms)<br>
>  Scanning C0<br>
>   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> 7 methods total, 1 methods to compile (13 ms)<br>
> Freeing memory [used: 2.2 MB , comm: 8.0 MB , freeRatio ~= 72.4%] (67 ms)<br>
> Compiling with 4 threads<br>
> .Error: Failed compilation: C0.M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V: java.lang.NullPointerException<br>
> java.lang.NullPointerException<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.getInput(<wbr>NodeClass.java:1042)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.forward(<wbr>NodeClass.java:981)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.hasNext(<wbr>NodeClass.java:974)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase$<wbr>Instance.<wbr>scheduleEarliestIterative(<wbr>SchedulePhase.java:743)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase$<wbr>Instance.run(SchedulePhase.<wbr>java:167)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase.<wbr>run(SchedulePhase.java:126)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.Phase.run(Phase.java:<wbr>47)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.Phase.apply(Phase.java:<wbr>40)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>EffectsPhase.runAnalysis(<wbr>EffectsPhase.java:87)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>PartialEscapePhase.run(<wbr>PartialEscapePhase.java:80)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>PartialEscapePhase.run(<wbr>PartialEscapePhase.java:42)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:137)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.PhaseSuite.run(<wbr>PhaseSuite.java:203)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:137)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.<wbr>emitFrontEnd(GraalCompiler.<wbr>java:229)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.compile(<wbr>GraalCompiler.java:172)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.<wbr>compileGraph(GraalCompiler.<wbr>java:158)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileGraph(<wbr>AOTBackend.java:141)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileMethod(<wbr>AOTBackend.java:103)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTCompilationTask.run(<wbr>AOTCompilationTask.java:121)<br>
>       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor.<wbr>runWorker(ThreadPoolExecutor.<wbr>java:1135)<br>
>       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor$<wbr>Worker.run(ThreadPoolExecutor.<wbr>java:635)<br>
>       at java.base/java.lang.Thread.<wbr>run(Thread.java:844)<br>
><br>
>  failed M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
><br>
> 0 methods compiled, 1 methods failed (275627 ms)<br>
> Freeing memory [used: 368.0 MB, comm: 765.0 MB, freeRatio ~= 51.9%] (63 ms)<br>
> Parsing compiled code (1 ms)<br>
> Freeing memory [used: 7.3 MB , comm: 17.0 MB, freeRatio ~= 57.0%] (17 ms)<br>
> Processing metadata (49 ms)<br>
> Freeing memory [used: 4.9 MB , comm: 17.0 MB, freeRatio ~= 71.3%] (21 ms)<br>
> Preparing stubs binary (1 ms)<br>
> Preparing compiled binary (0 ms)<br>
> .header: 65 bytes<br>
> .config: 40 bytes<br>
> .kls.offsets: 0 bytes<br>
> .meth.offsets: 0 bytes<br>
> .kls.dependencies: 0 bytes<br>
> .stubs.offsets: 964 bytes<br>
> .meth.metadata: 6792 bytes<br>
> .text: 21344 bytes<br>
> .code.segments: 165 bytes<br>
> .meth.constdata: 29152 bytes<br>
> .kls.got: 0 bytes<br>
> .cnt.got: 0 bytes<br>
> .meta.got: 0 bytes<br>
> .meth.state: 320 bytes<br>
> .oop.got: 0 bytes<br>
> .meta.names: 1874 bytes<br>
> Freeing memory [used: 4.9 MB , comm: 17.0 MB, freeRatio ~= 71.3%] (21 ms)<br>
> Creating binary: C0.so.o (29 ms)<br>
> Freeing memory [used: 4.9 MB , comm: 17.0 MB, freeRatio ~= 71.3%] (47 ms)<br>
> Creating shared library: C0.so (70 ms)<br>
> Final memory   [used: 4.8 MB , comm: 17.0 MB, freeRatio ~= 72.1%]<br>
> Total time: 277417 ms<br>
><br>
><br>
> Nightly build: jdk-10+23-20, 26 January 2018, macOS x64<br>
><br>
> <a href="https://github.com/AdoptOpenJDK/openjdk10-nightly/releases/download/jdk-10%2B23-20182601/OpenJDK10_x64_Mac_20182601.tar.gz" rel="noreferrer" target="_blank">https://github.com/<wbr>AdoptOpenJDK/openjdk10-<wbr>nightly/releases/download/jdk-<wbr>10%2B23-20182601/OpenJDK10_<wbr>x64_Mac_20182601.tar.gz</a><br>
><br>
> tianxiaogu@~/Dropbox/OpenJDK/<wbr>jaotc/LongCompileTime1 >>> ~/Downloads/jdk-10+23/bin/<wbr>jaotc --output C0.so  -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt --verbose  C0.class<br>
> Compiling C0.so...<br>
> 1 classes found (52 ms)<br>
>  Scanning C0<br>
>   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> 7 methods total, 1 methods to compile (10 ms)<br>
> Freeing memory [used: 2.2 MB , comm: 8.0 MB , freeRatio ~= 72.2%] (34 ms)<br>
> Compiling with 4 threads<br>
> .Error: Failed compilation: C0.M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V: java.lang.NullPointerException<br>
> java.lang.NullPointerException<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.getInput(<wbr>NodeClass.java:1042)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.forward(<wbr>NodeClass.java:981)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>graph.NodeClass$<wbr>RawEdgesIterator.hasNext(<wbr>NodeClass.java:974)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase$<wbr>Instance.<wbr>scheduleEarliestIterative(<wbr>SchedulePhase.java:743)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase$<wbr>Instance.run(SchedulePhase.<wbr>java:167)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.schedule.SchedulePhase.<wbr>run(SchedulePhase.java:126)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.Phase.run(Phase.java:<wbr>47)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.Phase.apply(Phase.java:<wbr>40)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>EffectsPhase.runAnalysis(<wbr>EffectsPhase.java:87)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>PartialEscapePhase.run(<wbr>PartialEscapePhase.java:80)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>virtual.phases.ea.<wbr>PartialEscapePhase.run(<wbr>PartialEscapePhase.java:42)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:137)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.PhaseSuite.run(<wbr>PhaseSuite.java:203)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:195)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>phases.BasePhase.apply(<wbr>BasePhase.java:137)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.<wbr>emitFrontEnd(GraalCompiler.<wbr>java:229)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.compile(<wbr>GraalCompiler.java:172)<br>
>       at jdk.internal.vm.compiler@10-<wbr>internal/org.graalvm.compiler.<wbr>core.GraalCompiler.<wbr>compileGraph(GraalCompiler.<wbr>java:158)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileGraph(<wbr>AOTBackend.java:140)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileMethod(<wbr>AOTBackend.java:102)<br>
>       at jdk.aot/jdk.tools.jaotc.<wbr>AOTCompilationTask.run(<wbr>AOTCompilationTask.java:121)<br>
>       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor.<wbr>runWorker(ThreadPoolExecutor.<wbr>java:1145)<br>
>       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor$<wbr>Worker.run(ThreadPoolExecutor.<wbr>java:630)<br>
>       at java.base/java.lang.Thread.<wbr>run(Thread.java:844)<br>
><br>
>  failed M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
><br>
> 0 methods compiled, 1 methods failed (140875 ms)<br>
> Freeing memory [used: 380.0 MB, comm: 2.0 GB , freeRatio ~= 81.0%] (180 ms)<br>
> Parsing compiled code (1 ms)<br>
> Freeing memory [used: 5.0 MB , comm: 10.0 MB, freeRatio ~= 49.8%] (33 ms)<br>
> Processing metadata (37 ms)<br>
> Freeing memory [used: 4.8 MB , comm: 10.0 MB, freeRatio ~= 52.0%] (39 ms)<br>
> Preparing stubs binary (2 ms)<br>
> Preparing compiled binary (0 ms)<br>
> .header: 67 bytes<br>
> .config: 39 bytes<br>
> .kls.offsets: 0 bytes<br>
> .meth.offsets: 0 bytes<br>
> .kls.dependencies: 0 bytes<br>
> .stubs.offsets: 940 bytes<br>
> .meth.metadata: 6616 bytes<br>
> .text: 21080 bytes<br>
> .code.segments: 163 bytes<br>
> .meth.constdata: 29152 bytes<br>
> .kls.got: 0 bytes<br>
> .cnt.got: 0 bytes<br>
> .meta.got: 0 bytes<br>
> .meth.state: 312 bytes<br>
> .oop.got: 0 bytes<br>
> .meta.names: 1826 bytes<br>
> Freeing memory [used: 4.8 MB , comm: 10.0 MB, freeRatio ~= 52.0%] (71 ms)<br>
> Creating binary: C0.so.o (91 ms)<br>
> Freeing memory [used: 4.8 MB , comm: 10.0 MB, freeRatio ~= 52.1%] (47 ms)<br>
> Creating shared library: C0.so (75 ms)<br>
> Final memory   [used: 4.7 MB , comm: 10.0 MB, freeRatio ~= 53.4%]<br>
> Total time: 142749 ms<br>
><br>
><br>
> On Sun, Jan 28, 2018 at 10:58 AM, Tianxiao Gu <<a href="mailto:tianxiao.gu@gmail.com">tianxiao.gu@gmail.com</a>> wrote:<br>
> Hi Doug,<br>
><br>
> Thank you very much for your feedback. I will try to create a Graal unit test and also reproduce the crash on my Mac.<br>
><br>
> 1. The OpenJDK head I used is built from the repo at <a href="http://hg.openjdk.java.net/jdk/jdk/" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/<wbr>jdk/jdk/</a>.<br>
> 2. My computer used for testing is Ubuntu 16.04. The output of `uname -a` is:<br>
><br>
> Linux xtiger 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux<br>
><br>
><br>
> On Sun, Jan 28, 2018 at 4:23 AM, Doug Simon <<a href="mailto:doug.simon@oracle.com">doug.simon@oracle.com</a>> wrote:<br>
> Hi Tianxiao,<br>
><br>
> Thanks for the detailed bug report.<br>
><br>
> By OpenJDK, which repo do you mean? I've tried to reproduce with the tip of <a href="http://hg.openjdk.java.net/jdk/hs" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/<wbr>jdk/hs</a> on my Mac but with no luck so far:<br>
><br>
> dsimon@kruger-4 ~/j/open> hg path<br>
> default = <a href="http://hg.openjdk.java.net/jdk/hs" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/<wbr>jdk/hs</a><br>
> default-push = ssh://<a href="http://dnsimon@hg.openjdk.java.net/jdk/hs" rel="noreferrer" target="_blank">dnsimon@hg.openjdk.java.<wbr>net/jdk/hs</a><br>
> dsimon@kruger-4 ~/j/open> hg id<br>
> f43576cfb273 tip<br>
> dsimon@kruger-4 ~/j/open> sh configure --disable-warnings-as-errors<br>
> dsimon@kruger-4 ~/j/open> make CONF=macosx-x86_64-normal-<wbr>server-release images<br>
> dsimon@kruger-4 ~/j/open> shasum C0.class<br>
> fc436e1bb82f9d6193177131b1130c<wbr>44ba61dce2  C0.class<br>
> dsimon@kruger-4 ~/j/open> cat commands.txt<br>
> compileOnly C0.M2.*<br>
> dsimon@kruger-4 ~/j/open> build/macosx-x86_64-normal-<wbr>server-release/images/jdk/bin/<wbr>jaotc --output C0.so --compile-commands commands.txt -J-Xcomp --verbose  -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 -J-Xcomp C0.class<br>
> Compiling C0.so...<br>
> 1 classes found (1374 ms)<br>
>  Scanning C0<br>
>   added M2([Ljava/lang/Number;[CLjava/<wbr>lang/Comparable;[F[Ljava/lang/<wbr>Character;[S)Z<br>
> 6 methods total, 1 methods to compile (159 ms)<br>
> Freeing memory [used: 2,4 MB , comm: 8,0 MB , freeRatio ~= 70,5%] (552 ms)<br>
> Compiling with 8 threads<br>
> .<br>
> 1 methods compiled, 0 methods failed (3988 ms)<br>
> Freeing memory [used: 4,2 MB , comm: 8,0 MB , freeRatio ~= 47,1%] (32 ms)<br>
> Parsing compiled code (22 ms)<br>
> Freeing memory [used: 5,4 MB , comm: 10,0 MB, freeRatio ~= 45,7%] (35 ms)<br>
> Processing metadata (164 ms)<br>
> Freeing memory [used: 5,4 MB , comm: 14,0 MB, freeRatio ~= 61,7%] (36 ms)<br>
> Preparing stubs binary (2 ms)<br>
> Preparing compiled binary (6 ms)<br>
> .header: 63 bytes<br>
> .config: 40 bytes<br>
> .kls.offsets: 48 bytes<br>
> .meth.offsets: 28 bytes<br>
> .kls.dependencies: 12 bytes<br>
> .stubs.offsets: 964 bytes<br>
> .meth.metadata: 7000 bytes<br>
> .text: 21624 bytes<br>
> .code.segments: 167 bytes<br>
> .meth.constdata: 29152 bytes<br>
> .kls.got: 32 bytes<br>
> .cnt.got: 0 bytes<br>
> .meta.got: 8 bytes<br>
> .meth.state: 328 bytes<br>
> .oop.got: 0 bytes<br>
> .meta.names: 1962 bytes<br>
> Freeing memory [used: 5,4 MB , comm: 14,0 MB, freeRatio ~= 61,8%] (47 ms)<br>
> Creating binary: C0.so.o (151 ms)<br>
> Freeing memory [used: 5,3 MB , comm: 14,0 MB, freeRatio ~= 61,8%] (41 ms)<br>
> Creating shared library: C0.so (31 ms)<br>
> Final memory   [used: 5,2 MB , comm: 14,0 MB, freeRatio ~= 62,9%]<br>
> Total time: 15784 ms<br>
><br>
><br>
> In terms of errors on 9.0.4, that version of Graal is now quite old and there's a good chance the issue has been fixed since then.<br>
><br>
> In terms of C2 crashing, that's something for the HotSpot compiler team to look at.<br>
><br>
> For these kinds of issues, it's really helpful if you can make a Graal unit test out of it. That allows us to test it against recent Graal and also ensure we don't regress. How do you generate these test classes? If it's with the ASM library, then you can see how it is used by other Graal unit tests:<br>
><br>
> <a href="https://github.com/oracle/graal/blob/3d00ff7781fd63da2af576ccb7594db7cb39373b/compiler/src/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/UnbalancedMonitorsTest.java" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/blob/<wbr>3d00ff7781fd63da2af576ccb7594d<wbr>b7cb39373b/compiler/src/org.<wbr>graalvm.compiler.core.test/<wbr>src/org/graalvm/compiler/core/<wbr>test/UnbalancedMonitorsTest.<wbr>java</a><br>
> <a href="https://github.com/oracle/graal/blob/2401c47b18c88317f0d2476e183cb7be65ce242d/compiler/src/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/SubWordReturnTest.java" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/blob/<wbr>2401c47b18c88317f0d2476e183cb7<wbr>be65ce242d/compiler/src/org.<wbr>graalvm.compiler.core.test/<wbr>src/org/graalvm/compiler/core/<wbr>test/SubWordReturnTest.java</a><br>
><br>
> You may also be able to express the problematic pattern in normal Java code as I could for <a href="https://github.com/oracle/graal/issues/288" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/issues/288</a>.<br>
><br>
> -Doug<br>
><br>
> > On 27 Jan 2018, at 10:16, Tianxiao Gu <<a href="mailto:tianxiao.gu@gmail.com">tianxiao.gu@gmail.com</a>> wrote:<br>
> ><br>
> > The OpenJDK head still crashes with this program. Now I can manage to reproduce the crash in about 1 min on my computer.  The crash stack trace is different.<br>
> ><br>
> > Using the following options to start jaotc.<br>
> ><br>
> > 1. Add options -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 and -J-Xcomp.<br>
> > 2. Add options --compile-commands commands.txt to jaotc, where the contents of commands.txt is<br>
> > compileOnly C0.M2.*<br>
> ><br>
> > If we use CompileCommand to exclude org.graalvm.compiler.graph.<wbr>Edges::getNodeListUnsafe, we get a Java stack trace.<br>
> ><br>
> > 3. Add option -J-XX:CompileCommand=exclude,<wbr>org.graalvm.compiler.graph.<wbr>Edges::getNodeListUnsafe<br>
> ><br>
> ><br>
> > Summary:<br>
> ><br>
> > HEAD + Include: VM crashed<br>
> > HEAD + Exclude: Java Exception<br>
> > JDK 9.04 + Include: VM crashed<br>
> > JDK 9.04 + Exclude: VM crashed<br>
> ><br>
> > I have fired a similar bug report with another program at  <a href="https://github.com/oracle/graal/issues/290" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/issues/290</a><br>
> ><br>
> > So far, we still have no idea whether this is a problem of C2 or Graal.<br>
> ><br>
> > === C2 (HEAD) crashes ===<br>
> ><br>
> > $ time ../../../openjdk/jdk/build/<wbr>linux-x86_64-normal-server-<wbr>release/jdk/bin/jaotc --output C0.so --verbose -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt  -J-Xcomp  C0<br>
> > Compiling C0.so...<br>
> > 1 classes found (721 ms)<br>
> >  Scanning C0<br>
> >   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> > 7 methods total, 1 methods to compile (173 ms)<br>
> > Freeing memory [used: 3.7 MB , comm: 10.0 MB, freeRatio ~= 62.6%] (555 ms)<br>
> > Compiling with 8 threads<br>
> > .#<br>
> > # A fatal error has been detected by the Java Runtime Environment:<br>
> > #<br>
> > #  SIGSEGV (0xb) at pc=0x00007f3c74f57135, pid=19884, tid=19921<br>
> > #<br>
> > # JRE version: OpenJDK Runtime Environment (10.0) (build 10-internal+0-adhoc.t.jdk)<br>
> > # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.t.jdk, compiled mode, tiered, jvmci, compressed oops, g1 gc, linux-amd64)<br>
> > # Problematic frame:<br>
> > # J 10840 c2 org.graalvm.compiler.graph.<wbr>Edges.getNodeListUnsafe(Lorg/<wbr>graalvm/compiler/graph/Node;J)<wbr>Lorg/graalvm/compiler/graph/<wbr>NodeList; jdk.internal.vm.compiler (12 bytes) @ 0x00007f3c74f57135 [0x00007f3c74f57120+<wbr>0x0000000000000015]<br>
> > #<br>
> > # 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/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/core.19884)<br>
> > #<br>
> > # An error report file with more information is saved as:<br>
> > # /home/t/Projects/JVMTesting/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/hs_err_<wbr>pid19884.log<br>
> > Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled<br>
> > #<br>
> > # If you would like to submit a bug report, please visit:<br>
> > #   <a href="http://bugreport.java.com/bugreport/crash.jsp" rel="noreferrer" target="_blank">http://bugreport.java.com/<wbr>bugreport/crash.jsp</a><br>
> > #<br>
> > Aborted (core dumped)<br>
> > real  1m14.411s<br>
> > user  1m17.352s<br>
> > sys   0m0.604s<br>
> ><br>
> > === Exclude getNodeListUnsafe ===<br>
> ><br>
> > $ time ../../../openjdk/jdk/build/<wbr>linux-x86_64-normal-server-<wbr>release/jdk/bin/jaotc --output C0.so --verbose -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt  -J-Xcomp -J-XX:CompileCommand=exclude,<wbr>org.graalvm.compiler.graph.<wbr>Edges::getNodeListUnsafe  C0<br>
> > CompileCommand: exclude org/graalvm/compiler/graph/<wbr>Edges.getNodeListUnsafe<br>
> > Compiling C0.so...<br>
> > 1 classes found (704 ms)<br>
> >  Scanning C0<br>
> >   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> > 7 methods total, 1 methods to compile (130 ms)<br>
> > Freeing memory [used: 4.6 MB , comm: 10.0 MB, freeRatio ~= 54.2%] (792 ms)<br>
> > Compiling with 8 threads<br>
> > .Error: Failed compilation: C0.M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V: java.lang.NullPointerException<br>
> > java.lang.NullPointerException<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.graph.Edges.<wbr>getNodeListUnsafe(Edges.java:<wbr>71)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.graph.<wbr>NodeClass$RawEdgesIterator.<wbr>getInput(NodeClass.java:1041)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.graph.<wbr>NodeClass$RawEdgesIterator.<wbr>forward(NodeClass.java:981)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.graph.<wbr>NodeClass$RawEdgesIterator.<wbr>hasNext(NodeClass.java:974)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>schedule.SchedulePhase$<wbr>Instance.<wbr>scheduleEarliestIterative(<wbr>SchedulePhase.java:743)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>schedule.SchedulePhase$<wbr>Instance.run(SchedulePhase.<wbr>java:167)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>schedule.SchedulePhase.run(<wbr>SchedulePhase.java:126)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.Phase.<wbr>run(Phase.java:47)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>BasePhase.apply(BasePhase.<wbr>java:195)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.Phase.<wbr>apply(Phase.java:40)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.virtual.<wbr>phases.ea.EffectsPhase.<wbr>runAnalysis(EffectsPhase.java:<wbr>87)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.virtual.<wbr>phases.ea.PartialEscapePhase.<wbr>run(PartialEscapePhase.java:<wbr>80)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.virtual.<wbr>phases.ea.PartialEscapePhase.<wbr>run(PartialEscapePhase.java:<wbr>42)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>BasePhase.apply(BasePhase.<wbr>java:195)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>BasePhase.apply(BasePhase.<wbr>java:137)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>PhaseSuite.run(PhaseSuite.<wbr>java:203)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>BasePhase.apply(BasePhase.<wbr>java:195)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.phases.<wbr>BasePhase.apply(BasePhase.<wbr>java:137)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.core.<wbr>GraalCompiler.emitFrontEnd(<wbr>GraalCompiler.java:229)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.core.<wbr>GraalCompiler.compile(<wbr>GraalCompiler.java:172)<br>
> >       at jdk.internal.vm.compiler/org.<wbr>graalvm.compiler.core.<wbr>GraalCompiler.compileGraph(<wbr>GraalCompiler.java:158)<br>
> >       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileGraph(<wbr>AOTBackend.java:141)<br>
> >       at jdk.aot/jdk.tools.jaotc.<wbr>AOTBackend.compileMethod(<wbr>AOTBackend.java:103)<br>
> >       at jdk.aot/jdk.tools.jaotc.<wbr>AOTCompilationTask.run(<wbr>AOTCompilationTask.java:121)<br>
> >       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor.<wbr>runWorker(ThreadPoolExecutor.<wbr>java:1131)<br>
> >       at java.base/java.util.<wbr>concurrent.ThreadPoolExecutor$<wbr>Worker.run(ThreadPoolExecutor.<wbr>java:631)<br>
> >       at java.base/java.lang.Thread.<wbr>run(Thread.java:844)<br>
> >  failed M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> > 0 methods compiled, 1 methods failed (80228 ms)<br>
> > Freeing memory [used: 430.5 MB, comm: 627.0 MB, freeRatio ~= 31.3%] (22 ms)<br>
> > Parsing compiled code (3 ms)<br>
> > Freeing memory [used: 9.8 MB , comm: 24.0 MB, freeRatio ~= 59.0%] (20 ms)<br>
> > Processing metadata (146 ms)<br>
> > Freeing memory [used: 6.1 MB , comm: 24.0 MB, freeRatio ~= 74.7%] (20 ms)<br>
> > Preparing stubs binary (3 ms)<br>
> > Preparing compiled binary (1 ms)<br>
> > .header: 57 bytes<br>
> > .config: 40 bytes<br>
> > .kls.offsets: 0 bytes<br>
> > .meth.offsets: 0 bytes<br>
> > .kls.dependencies: 0 bytes<br>
> > .stubs.offsets: 964 bytes<br>
> > .meth.metadata: 6792 bytes<br>
> > .text: 21344 bytes<br>
> > .code.segments: 165 bytes<br>
> > .meth.constdata: 29152 bytes<br>
> > .kls.got: 0 bytes<br>
> > .cnt.got: 0 bytes<br>
> > .meta.got: 0 bytes<br>
> > .meth.state: 320 bytes<br>
> > .oop.got: 0 bytes<br>
> > .meta.names: 1874 bytes<br>
> > Freeing memory [used: 6.1 MB , comm: 24.0 MB, freeRatio ~= 74.7%] (20 ms)<br>
> > Creating binary: C0 (74 ms)<br>
> > Freeing memory [used: 6.1 MB , comm: 24.0 MB, freeRatio ~= 74.7%] (20 ms)<br>
> > Creating shared library: C0.so (13 ms)<br>
> > Final memory   [used: 5.9 MB , comm: 24.0 MB, freeRatio ~= 75.3%]<br>
> > Total time: 90239 ms<br>
> > real  1m32.837s<br>
> > user  1m36.420s<br>
> > sys   0m0.792s<br>
> ><br>
> ><br>
> > ==============================<wbr>==============================<wbr>====================<br>
> ><br>
> > The crash is more easily to be reproduced in Oracle JDK 9.0.4+11 (without -J-Xcomp)<br>
> ><br>
> > $ time ../../../jdk-9.0.4/bin/jaotc --output C0.so --verbose -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt C0<br>
> > Compiling C0...<br>
> > 1 classes found (451 ms)<br>
> >  Scanning C0<br>
> >   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> > 7 methods total, 1 methods to compile (95 ms)<br>
> > Freeing memory [used: 2.5 MB , comm: 8.0 MB , freeRatio ~= 68.7%] (803 ms)<br>
> > Compiling with 8 threads<br>
> > .#<br>
> > # A fatal error has been detected by the Java Runtime Environment:<br>
> > #<br>
> > #  SIGSEGV (0xb) at pc=0x00007f43717c8d35, pid=20015, tid=20049<br>
> > #<br>
> > # JRE version: Java(TM) SE Runtime Environment (9.0+11) (build 9.0.4+11)<br>
> > # Java VM: Java HotSpot(TM) 64-Bit Server VM (9.0.4+11, compiled mode, tiered, jvmci, compressed oops, g1 gc, linux-amd64)<br>
> > # Problematic frame:<br>
> > # J 9702 c2 org.graalvm.compiler.graph.<wbr>Edges.getNodeListUnsafe(Lorg/<wbr>graalvm/compiler/graph/Node;J)<wbr>Lorg/graalvm/compiler/graph/<wbr>NodeList; jdk.internal.vm.compiler@9.0.4 (12 bytes) @ 0x00007f43717c8d35 [0x00007f43717c8d20+<wbr>0x0000000000000015]<br>
> > #<br>
> > # 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/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/core.20015)<br>
> > #<br>
> > # An error report file with more information is saved as:<br>
> > # /home/t/Projects/JVMTesting/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/hs_err_<wbr>pid20015.log<br>
> > Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled<br>
> > #<br>
> > # If you would like to submit a bug report, please visit:<br>
> > #   <a href="http://bugreport.java.com/bugreport/crash.jsp" rel="noreferrer" target="_blank">http://bugreport.java.com/<wbr>bugreport/crash.jsp</a><br>
> > #<br>
> > Aborted (core dumped)<br>
> > real  1m17.911s<br>
> > user  1m25.256s<br>
> > sys   0m0.896s<br>
> ><br>
> ><br>
> > === Exclude getNodeListUnsafe ===<br>
> ><br>
> > time ../../../jdk-9.0.4/bin/jaotc --output C0.so --verbose -J-Dgraal.<wbr>InlineDuringParsingMaxDepth=8 --compile-commands commands.txt -J-XX:CompileCommand=exclude,<wbr>org.graalvm.compiler.graph.<wbr>Edges::getNodeListUnsafe  C0<br>
> > CompileCommand: exclude org/graalvm/compiler/graph/<wbr>Edges.getNodeListUnsafe<br>
> > Compiling C0...<br>
> > 1 classes found (17 ms)<br>
> >  Scanning C0<br>
> >   added M2([C[SLjava/lang/Number;<wbr>Ljava/lang/Number;Ljava/lang/<wbr>Short;Ljava/lang/Float;SLjava/<wbr>lang/Character;[F)V<br>
> > 7 methods total, 1 methods to compile (4 ms)<br>
> > Freeing memory [used: 2.1 MB , comm: 8.0 MB , freeRatio ~= 73.6%] (20 ms)<br>
> > Compiling with 8 threads<br>
> > .#<br>
> > # A fatal error has been detected by the Java Runtime Environment:<br>
> > #<br>
> > #  SIGSEGV (0xb) at pc=0x00007ff051b6ab29, pid=20922, tid=20956<br>
> > #<br>
> > # JRE version: Java(TM) SE Runtime Environment (9.0+11) (build 9.0.4+11)<br>
> > # Java VM: Java HotSpot(TM) 64-Bit Server VM (9.0.4+11, mixed mode, aot, tiered, jvmci, compressed oops, g1 gc, linux-amd64)<br>
> > # Problematic frame:<br>
> > # j  org.graalvm.compiler.graph.<wbr>Edges.getNodeListUnsafe(Lorg/<wbr>graalvm/compiler/graph/Node;J)<wbr>Lorg/graalvm/compiler/graph/<wbr>NodeList;+5 jdk.internal.vm.compiler@9.0.4<br>
> > #<br>
> > # 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/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/core.20922)<br>
> > #<br>
> > # An error report file with more information is saved as:<br>
> > # /home/t/Projects/JVMTesting/<wbr>old-bugs/0123-old-bugs/jaotc-<wbr>jdk-20180122171043/hs_err_<wbr>pid20922.log<br>
> > Compiled method (c1)   65364 1005       1       sun.misc.Unsafe::getObject (9 bytes)<br>
> >  total in heap  [0x00007ff05965cb90,<wbr>0x00007ff05965cee0] = 848<br>
> >  relocation     [0x00007ff05965cd00,<wbr>0x00007ff05965cd28] = 40<br>
> >  main code      [0x00007ff05965cd40,<wbr>0x00007ff05965ce20] = 224<br>
> >  stub code      [0x00007ff05965ce20,<wbr>0x00007ff05965ceb0] = 144<br>
> >  scopes data    [0x00007ff05965ceb0,<wbr>0x00007ff05965ceb8] = 8<br>
> >  scopes pcs     [0x00007ff05965ceb8,<wbr>0x00007ff05965ced8] = 32<br>
> >  dependencies   [0x00007ff05965ced8,<wbr>0x00007ff05965cee0] = 8<br>
> > Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled<br>
> > #<br>
> > # If you would like to submit a bug report, please visit:<br>
> > #   <a href="http://bugreport.java.com/bugreport/crash.jsp" rel="noreferrer" target="_blank">http://bugreport.java.com/<wbr>bugreport/crash.jsp</a><br>
> > #<br>
> > Aborted (core dumped)<br>
> > real  1m5.467s<br>
> > user  1m21.900s<br>
> > sys   0m0.444s<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > On Wed, Jan 24, 2018 at 12:04 PM, Tianxiao Gu <<a href="mailto:tianxiao.gu@gmail.com">tianxiao.gu@gmail.com</a>> wrote:<br>
> > Thanks, Doug.<br>
> ><br>
> > I agree with you. The fatal error indicates that the C2 compiler may generate problematic code for a method (see below) of graal, when graal itself has been driven to a crazy state by the input C0.class.<br>
> > I will file an issue with another class that does not end with a fatal error of the runtime but still leads to a long compile time.<br>
> ><br>
> > Stack: [0x00007f29a22c2000,0x00007f29<br>
> > a23c3000],  sp=0x00007f29a23c06d0,  free space=1017k<br>
> > Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)<br>
> > J 3623% c2<br>
> > org.graalvm.compiler.phases.<wbr>schedule.SchedulePhase$<wbr>Instance.<wbr>scheduleEarliestIterative(<wbr>Lorg/graalvm/compiler/core/<wbr>common/cfg/BlockMap;Lorg/<wbr>graalvm/compiler/graph/<wbr>NodeMap;Lorg/graalvm/compiler/<wbr>graph/NodeBitMap;Lorg/graalvm/<wbr>compiler/nodes/<wbr>StructuredGraph;Z)V jdk.internal.vm.compiler (999 bytes) @ 0x00007f2a04f371a2 [0x00007f2a04f368e0+0x00000000<br>
> > 000008c2]<br>
> > j<br>
> ><br>
> ><br>
> > On Wed, Jan 24, 2018 at 3:02 AM, Doug Simon <<a href="mailto:doug.simon@oracle.com">doug.simon@oracle.com</a>> wrote:<br>
> > Hi Tianxiao,<br>
> ><br>
> > As far as I'm aware, Graal compiled code does not run during jaotc so I don't think the crash is Graal related. It's in a C2 compiled method.<br>
> ><br>
> > That said, the long compile time is almost certainly some issue in Graal. Looking at the class file, it seems like some inlining maybe be going crazy on the infinitely recursive C0.M0() method and I can confirm this with:<br>
> ><br>
> > jaotc -J-Dgraal.<wbr>TraceInlineDuringParsing=true C0.class<br>
> ><br>
> > Can you please file an issue at <a href="https://github.com/oracle/graal/issues" rel="noreferrer" target="_blank">https://github.com/oracle/<wbr>graal/issues</a> and we will investigate further.<br>
> ><br>
> > -Doug<br>
> ><br>
> > > On 24 Jan 2018, at 09:00, Tianxiao Gu <<a href="mailto:tianxiao.gu@gmail.com">tianxiao.gu@gmail.com</a>> wrote:<br>
> > ><br>
> > > Hi All,<br>
> > ><br>
> > > I found some abnormal behavior of jaotc. It takes 23 minutes for jaotc (head) to compile a 3012-byte generated class file (C0.class)<br>
> > > and jaotc ends with a fatal error. I have managed to reproduce this issue on my machine for 4 times.<br>
> > ><br>
> > > Related files are hosted on Google Drive:<br>
> > ><br>
> > > <a href="https://drive.google.com/open?id=1u9O3uPkvucX6PWQkMFER3NAUWIR_KglE" rel="noreferrer" target="_blank">https://drive.google.com/open?<wbr>id=<wbr>1u9O3uPkvucX6PWQkMFER3NAUWIR_<wbr>KglE</a><br>
> > ><br>
> > > Reproducing Steps:<br>
> > ><br>
> > > jaotc --output C0.so C0.class<br>
> > ><br>
> > > Environment:<br>
> > ><br>
> > > `java --version`<br>
> > ><br>
> > > openjdk 10-internal 2018-03-20<br>
> > > OpenJDK Runtime Environment (build 10-internal+0-adhoc.t.jdk)<br>
> > > OpenJDK 64-Bit Server VM (build 10-internal+0-adhoc.t.jdk, mixed mode)<br>
> > ><br>
> > > `lscpu`<br>
> > ><br>
> > > Architecture:          x86_64<br>
> > > CPU op-mode(s):        32-bit, 64-bit<br>
> > > Byte Order:            Little Endian<br>
> > > CPU(s):                8<br>
> > > On-line CPU(s) list:   0-7<br>
> > > Thread(s) per core:    2<br>
> > > Core(s) per socket:    4<br>
> > > Socket(s):             1<br>
> > > NUMA node(s):          1<br>
> > > Vendor ID:             GenuineIntel<br>
> > > CPU family:            6<br>
> > > Model:                 158<br>
> > > Model name:            Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz<br>
> > > Stepping:              9<br>
> > > CPU MHz:               900.000<br>
> > > CPU max MHz:           4200.0000<br>
> > > CPU min MHz:           800.0000<br>
> > > BogoMIPS:              7200.00<br>
> > > Virtualization:        VT-x<br>
> > > L1d cache:             32K<br>
> > > L1i cache:             32K<br>
> > > L2 cache:              256K<br>
> > > L3 cache:              8192K<br>
> > > NUMA node0 CPU(s):     0-7<br>
> > > Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp<br>
> > ><br>
> > > `uname -a`<br>
> > ><br>
> > > Linux xtiger 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux<br>
> ><br>
> ><br>
> ><br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br></div>