mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
2e7090e94d
Several recent failed runs show that the test is still racy in two ways: 1) Sometimes it takes a while before the PID file is created, leading to: ``` [ 10.950540] testsuite-47.sh[308]: ++ cat /leakedtestpid [ 10.959712] testsuite-47.sh[308]: cat: /leakedtestpid: No such file or directory [ 10.959824] testsuite-47.sh[298]: + leaked_pid= ``` 2) Again, sometimes we check the leaked PID before the unit is actually stopped, leading to a false negative: ``` [ 18.099599] testsuite-47.sh[346]: ++ cat /leakedtestpid [ 18.116462] testsuite-47.sh[333]: + leaked_pid=342 [ 18.117101] testsuite-47.sh[333]: + systemctl stop testsuite-47-repro ... [ 20.033907] testsuite-47.sh[333]: + ps -p 342 [ 20.080050] testsuite-47.sh[351]: PID TTY TIME CMD [ 20.080050] testsuite-47.sh[351]: 342 ? 00:00:00 sleep [ 20.082040] testsuite-47.sh[333]: + exit 42 ```
26 lines
443 B
Bash
Executable File
26 lines
443 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -ex
|
|
set -o pipefail
|
|
|
|
systemd-analyze log-level debug
|
|
systemd-analyze log-target console
|
|
|
|
systemctl start testsuite-47-repro
|
|
sleep 4
|
|
systemctl status testsuite-47-repro
|
|
|
|
leaked_pid=$(cat /leakedtestpid)
|
|
|
|
systemctl stop testsuite-47-repro
|
|
sleep 4
|
|
|
|
# Leaked PID will still be around if we're buggy.
|
|
# I personally prefer to see 42.
|
|
ps -p "$leaked_pid" && exit 42
|
|
|
|
systemd-analyze log-level info
|
|
|
|
echo OK > /testok
|
|
|
|
exit 0
|