SIGSEGV in GraalVM 0.31

Arthur Peters amp at cs.utexas.edu
Sun Feb 18 20:55:26 UTC 2018


I said -XX:JVMCIThreads=1 worked around the crash. I was wrong. It just
makes the crash a bit less likely. So I am in need of a work around
(ideally not -UseJVMCICompiler).

-Arthur


On 02/18/2018 02:21 PM, Arthur Peters wrote:
>
> I have run into a Graal VM crash (SIGSEGV) when executing compiled
> Scala code. The problem occurs before Truffle initializes and only
> seems to happen when UseJVMCICompiler is turned on. Currently
> reproducing this crash requires running the entire Orc compiler
> (https://github.com/orc-lang/orc) and the crash is non-deterministic
> (occasionally the program runs much longer before crashing). Adding
> -XX:JVMCIThreads=1 works around the crash. I'm pretty sure it's a
> concurrency race somewhere in Graal that our Scala parser code can
> trigger.
>
> I have a couple of questions:
>
>  1. How can I determine what part of the Orc code is causing the
>     crash? I want to be able to create a minimal test case for you all.
>  2. For future issues like this, is it possible to disable the JVMCI
>     last-tier compiler for some packages (or jars) but not others?
>     That would make it easy to enable Graal on the packages that need
>     it and disable it for others.
>
> Below is a trimmed version of one of the core dumps (well information
> I extracted from it). A number of compete dumps are at:
> https://gist.github.com/arthurp/9e725864d1c211e4238677cc787f6ba4
>
> Thanks!!
>
> -Arthur
>
> GDB bt output:
>
> Program terminated with signal SIGSEGV, Segmentation fault.
>
> Thread 1 (Thread 0x7f67d232d700 (LWP 29881)):
> #0  0x00007f67d106f8ca in SharedRuntime::get_poll_stub(unsigned char*)
> () from
> /home/amp/shared/graalvm/graalvm-0.31/jre/lib/amd64/server/libjvm.so
> #1  0x00007f67d0fcd8d9 in JVM_handle_linux_signal () from
> /home/amp/shared/graalvm/graalvm-0.31/jre/lib/amd64/server/libjvm.so
> #2  0x00007f67d0fc1b48 in signalHandler(int, siginfo*, void*) () from
> /home/amp/shared/graalvm/graalvm-0.31/jre/lib/amd64/server/libjvm.so
> #3  <signal handler called>
> #4 0x00007f67b8087a1b in ?? ()
> [...]
>
> jstack output:
>
> Thread 29881: (state = IN_JAVA)
>
> (this is not cut, the crashed thread always shows IN_JAVA and no stack.)
>



More information about the graal-dev mailing list