OpenJDK 8 Segfault on Startup

Attie Grande attie.grande at argentum-systems.co.uk
Tue Nov 27 23:34:27 UTC 2018


On Tue, 27 Nov 2018 at 22:13, Aleksey Shipilev <ashipile at redhat.com> wrote:
>
> Okay. So you caught the SEGV from the Zero-interpreted Java code. Debugging is going to be fun,
> because you would have to see what the interpreter was doing when the signal hit. You see the
> message from the JVM's signal handler, and there are a few legit cases where SEGV is expected and
> should not break the VM: for example, it could be the NPE from Java code.

This theory was suggested by David Holmes <david.holmes at oracle.com>
too - thanks David.
He suggested:
"""
    you may be hitting an actual NullPointerException in the static
initialization code for sun.reflect.Reflection.<clinit>()
"""

> I'd probably also poke around JVM_handle_linux_signal on os_linux_zero.cpp and see if anything goes
> wrong here. For example, there is a suspicious jni_fast_Get<Primitive>Field comment. I also don't
> see the handler for implicit null checks, given ImplicitNullChecks is on for Zero, hm; that probably
> means Zero never actually generates them, so they don't require handling.

I presume you're referring to os_linux_zero.cpp:205 [1] - it's
interesting indeed.
Sadly I can't really comment on ImplicitNullChecks, or the procedure
in JVM_handle_linux_signal().

> More verbose failure message (what's si_addr, for example?) would help to understand the message
> too. Must be easy to at least feed the unhandled sig to os::print_siginfo.

I'll also look to add some output to JVM_handle_linux_signal() as suggested.

I managed to get some time this evening, so have produced a fastdebug
and slowdebug build (neither helped dramatically).
I used:
    --with-debug-level=fastdebug --with-native-debug-symbols=internal

A fatal log is here:
    https://pastebin.com/raw/iXTz8v9z

Output from a crash in gdb (still no symbols):
    https://pastebin.com/raw/dS8zak5H

The content of siginfo_t... if it's helpful:
    https://pastebin.com/raw/hUwZPUUd

Attie

PS: Thanks for trying the build on the RPi... that same build works
fine on my board!
Do you have any information on "what" was built? (i.e: patches,
etc...) or is it built from vanilla 191-b12 sources?

[1]: https://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/d2e3920d2fd0/src/os_cpu/linux_zero/vm/os_linux_zero.cpp#l205


More information about the jdk-dev mailing list