Java crashes on s390x VM with SIGILL/ILL_PRVOPC at '__kernel_getcpu+0x8'
Now that I can reproduce the problem with QEMU version 6.1, I thought I should create an issue report here that I originally opened against the Ubuntu QEMU package as Bug #1945540.
Host environment
- Operating system: Ubuntu 20.04.3 LTS
- OS/kernel version:
Linux focal 5.11.0-37-generic #41~20.04.2-Ubuntu SMP Fri Sep 24 09:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- Architecture: x86_64
- QEMU flavor: qemu-system-s390x
- QEMU version: QEMU emulator version 6.1.0
- QEMU command line:
$HOME/tmp/qemu-6.1.0/build/s390x-softmmu/qemu-system-s390x \ -m 2048 -drive if=virtio,file=s390x-focal.qcow2,cache=none
Emulated/Virtualized environment
- Operating system: Ubuntu 20.04.3 LTS
- OS/kernel version:
Linux s390x-focal 5.4.0-88-generic #99-Ubuntu SMP Thu Sep 23 17:27:44 UTC 2021 s390x s390x s390x GNU/Linux
- Architecture: s390x
Description of problem
The java
command fails with the following message:
$ /usr/lib/jvm/java-17-openjdk-s390x/bin/java --version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x000003ff9e4fe6f4, pid=2883, tid=2884
#
# JRE version: (17.0+35) (build )
# Java VM: OpenJDK 64-Bit Server VM (17+35-Ubuntu-120.04, mixed
# mode, sharing, tiered, compressed oops, compressed class ptrs,
# serial gc, linux-s390x)
# Problematic frame:
# C [linux-vdso64.so.1+0x6f8] __kernel_getcpu+0x8
#
# Core dump will be written. Default location: Core dumps may
# be processed with "/usr/share/apport/apport %p %s %c %d %P %E"
# (or dumping to /home/ubuntu/core.2883)
#
# An error report file with more information is saved as:
# /home/ubuntu/hs_err_pid2883.log
#
#
Aborted (core dumped)
Steps to reproduce
- Run
java --version
Additional information
The corresponding log file is attached as the file hs_err_pid2883.log.