git: 0e6751669fc5 - stable/15 - syslogd/tests: Fix flakiness in forwarding tests
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 09 Feb 2026 18:04:20 UTC
The branch stable/15 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=0e6751669fc52477bc1ce90fc5fb54eab840a581
commit 0e6751669fc52477bc1ce90fc5fb54eab840a581
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-01-22 15:52:00 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-02-09 18:03:42 +0000
syslogd/tests: Fix flakiness in forwarding tests
syslogd_start() waits for the local log socket to appear before
returning, to ensure that the daemon is ready to handle log messages.
Some tests start two daemons, so by default the socket already exists
when the second daemon is started, so syslogd_start() returns early.
The test subsequently sends a message to this second daemon, which
sometimes isn't ready.
Define a separate log socket for the second daemon. Add a check to
syslogd_start() to help catch this type of bug.
Reviewed by: jlduran
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D54800
(cherry picked from commit 14dce731d70686e08ed689729f53c6a5e2225498)
---
usr.sbin/syslogd/tests/syslogd_test.sh | 8 +++++---
usr.sbin/syslogd/tests/syslogd_test_common.sh | 9 +++++++--
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh
index d4723b9e05b3..1f235c476c49 100644
--- a/usr.sbin/syslogd/tests/syslogd_test.sh
+++ b/usr.sbin/syslogd/tests/syslogd_test.sh
@@ -452,7 +452,7 @@ allowed_peer_forwarding_body()
printf "+169.254.0.2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}"
syslogd_start -j syslogd_allowed_peer -P ${SYSLOGD_PIDFILE}.2 \
- -b 169.254.0.1:514 -a 169.254.0.2/32
+ -b 169.254.0.1:514 -a 169.254.0.2/32 -p ${PWD}/peer
# A message forwarded to 169.254.0.1:514 should be logged, but one
# forwarded to 169.254.0.1:515 should not.
@@ -544,8 +544,10 @@ mail.debug ${SYSLOGD_LOGFILE}
ftp.debug ${SYSLOGD_LOGFILE}
__EOF__
- syslogd_start -j syslogd_server -f ${PWD}/server_config -b 169.254.0.1 -b 169.254.0.2
- syslogd_start -j syslogd_client -f ${PWD}/client_config -P ${SYSLOGD_PIDFILE}.2
+ syslogd_start -j syslogd_server -f ${PWD}/server_config \
+ -b 169.254.0.1 -b 169.254.0.2
+ syslogd_start -j syslogd_client -f ${PWD}/client_config \
+ -p ${PWD}/client -P ${SYSLOGD_PIDFILE}.2
syslogd_log_jail syslogd_client \
-h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p user.debug -t test1 "hello, world"
diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh
index 2f21137cf026..47fca62e66d0 100644
--- a/usr.sbin/syslogd/tests/syslogd_test_common.sh
+++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh
@@ -68,6 +68,11 @@ syslogd_start()
esac
done
+ socket=${socket:-${SYSLOGD_LOCAL_SOCKET}}
+ if [ -S "${socket}" ]; then
+ atf_fail "socket ${socket} already exists"
+ fi
+
# Setup loopback so we can deliver messages to ourself.
if [ $($jail sysctl -n security.jail.vnet) -ne 0 ]; then
atf_check $jail ifconfig lo0 inet 127.0.0.1/8
@@ -80,7 +85,7 @@ syslogd_start()
-f "${conf_file:-${SYSLOGD_CONFIG}}" \
-H \
-P "${pid_file:-${SYSLOGD_PIDFILE}}" \
- -p "${socket:-${SYSLOGD_LOCAL_SOCKET}}" \
+ -p "${socket}" \
-S "${privsocket:-${SYSLOGD_LOCAL_PRIVSOCKET}}" \
${other_args} \
&
@@ -92,7 +97,7 @@ syslogd_start()
done
fi
while [ "$((i+=1))" -le 20 ]; do
- [ -S "${socket:-${SYSLOGD_LOCAL_SOCKET}}" ] && return
+ [ -S "${socket}" ] && return
sleep 0.1
done
atf_fail "timed out waiting for syslogd to start"