System tests: sdnotify: wait for socket file creation

Potential race between starting socat (which creates a socket
file) and processes accessing said socket. Or maybe not. I
dunno, I'm grasping at straws. This is an elusive flake.

Fixes: #23798 (I hope)

Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
Ed Santiago
2024-10-01 14:48:06 -06:00
parent 13b78c9da9
commit 410537808e

View File

@ -52,6 +52,16 @@ function _start_socat() {
(exec socat unix-recvfrom:"$NOTIFY_SOCKET",fork \
system:"(cat;echo) >> $_SOCAT_LOG" 3>&-) &
_SOCAT_PID=$!
# Wait for socat to create the socket file. This _should_ be
# instantaneous, but can take a few seconds under high load
for try in $(seq 1 10); do
if [[ -e "$NOTIFY_SOCKET" ]]; then
return
fi
sleep 0.5
done
die "Timed out waiting for socat to create $NOTIFY_SOCKET"
}
# Stop the socat background process and clean up logs