podman-container-tools/podman · error
cannot sigdelset(SIGCHLD): %m
Error message
cannot sigdelset(SIGCHLD): %m
What it means
In the reexec_userns_join child, sigdelset(&sigset, SIGCHLD) failed while carving SIGCHLD out of the just-filled signal mask (so the child can still be reaped/see children while everything else is blocked). The child _exit(EXIT_FAILURE)s. Like the other sigset checks in this block, sigdelset can only return EINVAL for an invalid signal number, and SIGCHLD is valid by definition — this is defensive, effectively unreachable code.
Source
Thrown at pkg/rootless/rootless_linux.c:1179
close (f);
if (do_socket_activation)
{
unsetenv ("LISTEN_PID");
unsetenv ("LISTEN_FDS");
unsetenv ("LISTEN_FDNAMES");
}
return pid;
}
if (sigfillset (&sigset) < 0)
{
fprintf (stderr, "cannot fill sigset: %m\n");
_exit (EXIT_FAILURE);
}
if (sigdelset (&sigset, SIGCHLD) < 0)
{
fprintf (stderr, "cannot sigdelset(SIGCHLD): %m\n");
_exit (EXIT_FAILURE);
}
if (sigdelset (&sigset, SIGTERM) < 0)
{
fprintf (stderr, "cannot sigdelset(SIGTERM): %m\n");
_exit (EXIT_FAILURE);
}
if (sigprocmask (SIG_BLOCK, &sigset, &oldsigset) < 0)
{
fprintf (stderr, "cannot block signals: %m\n");
_exit (EXIT_FAILURE);
}
if (do_socket_activation)
{
char s[32];
sprintf (s, "%d", getpid());
setenv ("LISTEN_PID", s, true);View on GitHub (pinned to a2409076ef)
Solutions
- Treat as a bug report, not a config issue: rerun and check whether it is deterministic
- Verify libc/podman binary integrity and rule out LD_PRELOAD interposition
- Capture stderr plus a core dump and report to containers/podman with reproduction steps
Defensive patterns
Strategy: validation
Prevention
- Treat any occurrence as a corruption/ABI bug: verify binary integrity (rpm -V podman)
- Avoid custom-patched libc or podman builds in production
- Report upstream with podman/glibc/kernel versions if reproducible
When it happens
Trigger: sigdelset returning -1 requires an invalid signo argument; with the constant SIGCHLD that implies a corrupted sigset_t, a broken libc, or ABI-level memory corruption.
Common situations: Should never fire on a healthy host; its appearance indicates the process image or libc is damaged rather than a configuration problem.
Related errors
- cannot fill sigset: %m
- cannot sigdelset(SIGTERM): %m
- cannot fill sigset: %m\n
- cannot block signals: %m
- cannot sigdelset(SIGCHLD): %m\n
AI-assisted analysis of podman-container-tools/podman@a2409076ef (2026-08-15).
Data as JSON: /api/errors/30b04909d914bd38.
Report an issue: GitHub.