summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorValentin Rothberg <vrothberg@redhat.com>2022-05-12 11:11:37 +0200
committerValentin Rothberg <vrothberg@redhat.com>2022-05-12 11:11:37 +0200
commit03af8213cea25036788d9c9db33e748b7985d590 (patch)
tree4d71c0b0821ce0e0597454b96184d01b9d1887a5 /test
parentf65e13eb7aa5874faad579bee2ac16170d467845 (diff)
downloadpodman-03af8213cea25036788d9c9db33e748b7985d590.tar.gz
podman-03af8213cea25036788d9c9db33e748b7985d590.tar.bz2
podman-03af8213cea25036788d9c9db33e748b7985d590.zip
sdnotify: send MAINPID only once
Send the main PID only once. Previously, `(*Container).start()` and the conmon handler sent them ~simultaneously and went into a race. I noticed the issue while debugging a WIP PR. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/system/260-sdnotify.bats11
1 files changed, 5 insertions, 6 deletions
diff --git a/test/system/260-sdnotify.bats b/test/system/260-sdnotify.bats
index 395e6f94f..88d84c86f 100644
--- a/test/system/260-sdnotify.bats
+++ b/test/system/260-sdnotify.bats
@@ -106,6 +106,9 @@ function _assert_mainpid_is_conmon() {
cid="$output"
wait_for_ready $cid
+ run_podman container inspect sdnotify_conmon_c --format "{{.State.ConmonPid}}"
+ mainPID="$output"
+
run_podman logs sdnotify_conmon_c
is "$output" "READY" "\$NOTIFY_SOCKET in container"
@@ -114,12 +117,8 @@ function _assert_mainpid_is_conmon() {
echo "socat log:"
echo "$output"
- # ARGH! 'READY=1' should always be the last output line. But sometimes,
- # for reasons unknown, we get an extra MAINPID=xxx after READY=1 (#8718).
- # Who knows if this is a systemd bug, or conmon, or what. I don't
- # even know where to begin asking. So, to eliminate the test flakes,
- # we look for READY=1 _anywhere_ in the output, not just the last line.
- is "$output" ".*READY=1.*" "sdnotify sent READY=1"
+ is "$output" "MAINPID=$mainPID
+READY=1" "sdnotify sent MAINPID and READY"
_assert_mainpid_is_conmon "$output"