regression: 7.0.0 breaks registering process subreaper on Apple silicon
Host environment
-
Operating system: Mac OS Sonoma 14.0
-
OS/kernel version: Darwin xxx 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000 arm64
-
Architecture: ARM / aarch64 (Apple M1)
-
QEMU flavor: qemu-system-aarch64
-
QEMU version: QEMU emulator version 8.1.1
-
QEMU command line:
There is probably a much smaller version of this however I am not a QEMU expert enough to be able to judge what is relevant and what is not. This the command generated by podman on my M1 Mac:
/opt/homebrew/bin/qemu-system-aarch64 -m 15260 -smp 4 -fw_cfg name=opt/com.coreos/config,file=/Users/xxx/.config/containers/podman/machine/qemu/podman-machine-default.ign -qmp unix:/var/folders/q1/v6cfzg6s59lcbdfvxl62hnqm0000gn/T/podman/qmp_podman-machine-default.sock,server=on,wait=off -netdev socket,id=vlan,fd=3 -device virtio-net-pci,netdev=vlan,mac=5a:94:ef:e4:0c:ee -device virtio-serial -chardev socket,path=/var/folders/q1/v6cfzg6s59lcbdfvxl62hnqm0000gn/T/podman/podman-machine-default_ready.sock,server=on,wait=off,id=apodman-machine-default_ready -device virtserialport,chardev=apodman-machine-default_ready,name=org.fedoraproject.port.0 -pidfile /var/folders/q1/v6cfzg6s59lcbdfvxl62hnqm0000gn/T/podman/podman-machine-default_vm.pid -accel hvf -accel tcg -cpu host -M virt,highmem=on -drive file=/opt/homebrew/share/qemu/edk2-aarch64-code.fd,if=pflash,format=raw,readonly=on -drive file=/Users/xxx/.local/share/containers/podman/machine/qemu/podman-machine-default_ovmf_vars.fd,if=pflash,format=raw -virtfs local,path=/Users,mount_tag=vol0,security_model=none -virtfs local,path=/private,mount_tag=vol1,security_model=none -virtfs local,path=/var/folders,mount_tag=vol2,security_model=none -drive if=virtio,file=/Users/xxx/.local/share/containers/podman/machine/qemu/podman-machine-default_fedora-coreos-38.20231002.2.2-qemu.aarch64.qcow2 -display none
Emulated/Virtualized environment
- Operating system: Fedora CoreOS 38 (via podman)
- OS/kernel version: Linux localhost.localdomain 6.5.5-200.fc38.aarch64 #1 SMP PREEMPT_DYNAMIC Sun Sep 24 16:14:15 UTC 2023 aarch64 GNU/Linux
- Architecture: ARM / aarch64
Description of problem
When running any container on the QEMU virtual guest that is using a utility like tini
which is trying to register itself as a process subreaper I get an error message like this:
[FATAL tini (1)] PR_SET_CHILD_SUBREAPER is unavailable on this platform. Are you using Linux >= 3.4?
The issue has been observed by multiple people on Apple silicon Macs, e.g. in these issues: https://github.com/docker/for-mac/issues/6620#issuecomment-1694380189 https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/issues/1735
Steps to reproduce
- Install QEMU 7.0.0+ on an Apple silicon MAC
- Run a virtual guest
- Try to register a process subreaper, e.g. like
tini -s
does
Additional information
the issue was introduced in QEMU 7.0.0 with this commit: 220717a6
tini readme talking about process subreaping: https://github.com/krallin/tini#subreaping