]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: do not fail when parsing PID that isn't thread-group leader (#40677)
authorLuca Boccassi <bluca@debian.org>
Fri, 13 Feb 2026 21:37:56 +0000 (21:37 +0000)
committerGitHub <noreply@github.com>
Fri, 13 Feb 2026 21:37:56 +0000 (21:37 +0000)
```
TEST-02-UNITTESTS.sh[4382]: [  707.393188] test-cgroup-util[426]: Failed to open pidfd for pid 414: Invalid argument
TEST-02-UNITTESTS.sh[4382]: [  707.393193] test-cgroup-util[426]: src/test/test-cgroup-util.c:249: Assertion failed: Expected "r = proc_dir_read_pidref(d, &pid)" to succeed, but got error: -22/EINVAL
```

The kernel can return EINVAL on pidfd_open() when the selected PID is
not a thread group leader. Don't fail the test, as we are iterating on
everything, so this can seldomly happen.

src/test/test-cgroup-util.c

index b8393f33683f209be3659d37a12d46319683c7c1..53f617b7213e472aecddee3983ea802810b11525 100644 (file)
@@ -246,7 +246,10 @@ TEST(proc, .sd_booted = true) {
                 _cleanup_(pidref_done) PidRef pid = PIDREF_NULL;
                 uid_t uid = UID_INVALID;
 
-                ASSERT_OK(r = proc_dir_read_pidref(d, &pid));
+                r = proc_dir_read_pidref(d, &pid);
+                if (r == -EINVAL) /* Can happen if we pick a non-thread-group leader */
+                        continue;
+                ASSERT_OK(r);
                 if (r == 0)
                         break;