]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
TEST-07-PID1: Fix race in aux-scope subtest
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 8 May 2024 08:20:20 +0000 (10:20 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 8 May 2024 08:20:20 +0000 (10:20 +0200)
Currently test-aux-scope.service can get killed by the test before
it's had a chance to setup its signal handler. Make it Type=notify
to fix the race.

Fixes #32670 (hopefully)

src/test/test-aux-scope.c
test/units/testsuite-07.aux-scope.sh

index 175757b1c1800eacf0dbc9449a48d267a62134b8..c6a1d292730935f57c496b7e6fee4382247c97f9 100644 (file)
@@ -10,6 +10,7 @@
 #include "bus-error.h"
 #include "bus-message.h"
 #include "bus-wait-for-jobs.h"
+#include "daemon-util.h"
 #include "fd-util.h"
 #include "log.h"
 #include "missing_syscall.h"
@@ -152,6 +153,10 @@ int main(int argc, char *argv[]) {
                 pids[i] = TAKE_PIDREF(pidref);
         }
 
+        r = sd_notify(false, NOTIFY_READY);
+        if (r < 0)
+                return log_error_errno(r, "Failed to send readiness notification: %m");
+
         r = sd_event_loop(event);
         if (r < 0)
                 return log_error_errno(r, "Failed to run event loop: %m");
index 41c0617d4dbd52d36224f1123de7684edc7a9976..8e2a99ce027b2f0ea71dbfc376f423e543ddc8c1 100755 (executable)
@@ -11,7 +11,7 @@ if ! grep -q pidfd_open /proc/kallsyms; then
 fi
 
 systemd-run --unit test-aux-scope.service \
-            -p Slice=aux.slice -p Type=exec -p TasksMax=99 -p CPUWeight=199 -p IPAccounting=yes \
+            --service-type notify -p Slice=aux.slice -p TasksMax=99 -p CPUWeight=199 -p IPAccounting=yes \
             /usr/lib/systemd/tests/unit-tests/manual/test-aux-scope
 kill -s USR1 "$(systemctl show --value --property MainPID test-aux-scope.service)"