You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Latest debian systemd (256.4-2) is failing on kernel 5.4
dev-hugepages.mount: Failed to spawn executor: Argument list too long
dev-hugepages.mount: Failed to spawn 'mount' task: Argument list too long
dev-mqueue.mount: Failed to spawn executor: Argument list too long
dev-mqueue.mount: Failed to spawn 'mount' task: Argument list too long
run-lock.mount: Failed to spawn executor: Argument list too long
run-lock.mount: Failed to spawn executor: Argument list too long
On 5.4 the error is E2BIG (the clone3 syscall is supported, but what is not supported is CLONE_INTO_CGROUP that was added in 5.7 (torvalds/linux@ef2c41c).
Intro
Latest debian systemd (256.4-2) is failing on kernel 5.4
More details in: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1077204.
Details
The issue seems to be in systemd's use of
pidfd_spawn()
: https://github.com/systemd/systemd/blob/a55d1b29a4cc2edc8550c5f4e062f2194807dcd3/src/basic/process-util.c#L2102-L2117.The code checks wither the error is "Not supported": is https://github.com/systemd/systemd/blob/a55d1b29a4cc2edc8550c5f4e062f2194807dcd3/src/basic/errno-util.h#L161-L171
And if the error is something else, it fails.
On
5.4
the error is E2BIG (theclone3
syscall is supported, but what is not supported isCLONE_INTO_CGROUP
that was added in 5.7 (torvalds/linux@ef2c41c).As a result, on 5.4 all executions result in E2B
Fix
Workaround
In the meantime, here's a workaround where we override glibc and have it always return
EOPNOTSUPP
in kernels earlier than5.7
.systemd-pidfd-fix.c
:And add it to
/etc/ld.so.preload
:Misc
Reproducer program:
The text was updated successfully, but these errors were encountered: