Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sd-event: disable epoll_pwait2 for now
This reverts the gist of commit 798445a. Unfortunately the new syscall causes test-event to hang. 32 bit architectures seem affected: i686 and arm32 in fedora koji. 32 bit build of test-event hangs reliably under valgrind: $ PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig meson build-32 -Dc_args=-m32 -Dc_link_args=-m32 -Dcpp_args=-m32 -Dcpp_link_args=-m32 && ninja -C build-32 test-event && valgrind build/test-event If I set epoll_pwait2_absent=true, so the new function is never called, then the issue does not reproduce. It seems to be strictly tied to the syscall. On amd64, the syscall is not used, at least with the kernel that Fedora provides. The kernel patch 58169a52ebc9a733aeb5bea857bc5daa71a301bb says: For timespec, only support this new interface on 2038 aware platforms that define __kernel_timespec_t. So no CONFIG_COMPAT_32BIT_TIME. And Fedora sets CONFIG_COMPAT_32BIT_TIME=y. I expect most other distros will too. On amd64: epoll_wait_usec: epoll_pwait2: ret=-1 / errno=38 On i686 (same kernel): epoll_wait_usec: epoll_pwait2: ret=2 / errno=0 Is this some kind of emulation? Anyway, it seems that this is what is going wrong. So let's disable the syscall until it becomes more widely available and the kinks have been ironed out. Fixes test-event issue in systemd#19052.
- Loading branch information