qemu-aarch64-static docker arm64v8/openjdk coredump

Bug #1761535 reported by Richard Henwood
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

I am using qemu-aarch64-static to run the arm64v8/openjdk official image on my x86 machine. Using QEMU master, I immediately hit a bug which hangs the container. With Ubuntu default version qemu-aarch64 version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.24) and qemu-aarch64 version 2.11.1 (v2.11.1-dirty) the hang does not take place.

To reproduce (and get to the core dump):

$ /tmp/tmptgyg3nvh/qemu-aarch64-static/qemu-aarch64-static -version
qemu-aarch64 version 2.11.91 (v2.12.0-rc1-5-g47d3b60-dirty)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

$ docker run -it -v /tmp/tmptgyg3nvh/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/openjdk /bin/bash
root@bf75cf45d311:/# javac
Usage: javac <options> <source files>
where possible options include:
  -g Generate all debugging info
<...snip...>
  @<filename> Read options and filenames from file

qemu: uncaught target signal 11 (Segmentation fault) - core dumped
...TERMINAL HANGS...

To get the core dump, In a separate terminal:

# snapshot the file system of the hung image
$ docker commit $(docker ps -aqf "name=latest_qemu") qemu_coredump

# connect with known working qemu
$ docker run -t -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static -i qemu_coredump /bin/bash

$$ ls -lat
total 10608
<snip>
-rw-r--r-- 1 root root 10792960 Mar 29 18:02 qemu_bash_20180329-180251_1.core
drwxrwxrwt 5 root root 4096 Mar 29 18:02 tmp
<snip>

Revision history for this message
Peter Maydell (pmaydell) wrote :

Could you provide a binary that we can use to reproduce, please? (preferably a setup that doesn't require me to figure out how to install and use docker...)

Revision history for this message
Peter Maydell (pmaydell) wrote :

I realized I had a javac lying around from last time somebody wanted me to debug a java problem, and I'm also seeing SEGVs with simpler programs like ls (!), so I'll have a look at those and hopefully that will be the same cause as what you're seeing.

Revision history for this message
Peter Maydell (pmaydell) wrote :

I think this should be fixed by https://patchwork.ozlabs.org/patch/896295/

(incidentally the segfault is in the guest /bin/sh, not in javac or ls.)

Changed in qemu:
status: New → In Progress
Revision history for this message
Peter Maydell (pmaydell) wrote :

Now fixed in master, commit 7f0f4208b3a96, and will be in 2.12.0.

Changed in qemu:
status: In Progress → Fix Committed
Revision history for this message
Richard Henwood (rjhenwood) wrote :

Many thanks!

I've just compiled master, and docker/aarch64/openjdk image now works as expected on my x86 machine.

Thomas Huth (th-huth)
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.