TEST-07-PID1: Fix race in aux-scope subtest

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)
This commit is contained in:
Daan De Meyer 2024-05-08 10:20:20 +02:00
parent 3473c842fa
commit b438ebd7bc
2 changed files with 6 additions and 1 deletions

View 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");

View file

@ -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)"