[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1823790] Re: QEMU mishandling of SO_PEERSEC forces sys
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [Bug 1823790] Re: QEMU mishandling of SO_PEERSEC forces systemd into tight loop |
Date: |
Tue, 09 Apr 2019 13:26:34 -0000 |
As described on the systemd issue, the syscall we're getting wrong here
is getsockopt(fd, SOL_SOCKET, SO_PEERSEC, ...). Our linux-
user/syscall.c:do_getsockopt() doesn't have any special case code for
the payload on this function, so we treat it as if it were just an
integer payload, which is not correct here.
Unfortunately I can't find any documentation on exactly what SO_PEERSEC
does or what the payload format is, which makes it pretty hard to fix
this bug :-( It's not listed in the socket(7) manpage --
https://linux.die.net/man/7/socket -- which is where I'd expect to find
it, and the kernel source code is pretty confusing in this area.
** Summary changed:
- QEMU forces systemd into tight loop
+ QEMU mishandling of SO_PEERSEC forces systemd into tight loop
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1823790
Title:
QEMU mishandling of SO_PEERSEC forces systemd into tight loop
Status in QEMU:
New
Bug description:
While building Debian images for embedded ARM target systems I
detected that QEMU seems to force newer systemd daemons into a tight
loop.
My setup is the following:
Host machine: Ubuntu 18.04, amd64
LXD container: Debian Buster, arm64, systemd 241
QEMU: qemu-aarch64-static, 4.0.0-rc2 (custom build) and 3.1.0 (Debian
1:3.1+dfsg-7)
To easily reproduce the issue I have created the following repository:
https://github.com/lueschem/edi-qemu
The call where systemd gets looping is the following:
2837 getsockopt(3,1,31,274891889456,274887218756,274888927920) = -1 errno=34
(Numerical result out of range)
Furthermore I also verified that the issue is not related to LXD.
The same behavior can be reproduced using systemd-nspawn.
This issue reported against systemd seems to be related:
https://github.com/systemd/systemd/issues/11557
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1823790/+subscriptions