[Openvpn-devel,v1] t_server_null: use wait instead of marker files
Commit Message
From: Samuli Seppänen <samuli.seppanen@gmail.com>
By using wait in a more inventive way we can avoid using a marker file
to detect the "server could not be killed gracefully" situation.
Change-Id: Ib385080e1dd1c3046c54e6267db8aa7d5c09e2fb
Signed-off-by: Samuli Seppänen <samuli.seppanen@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
---
This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/786
This mail reflects revision 1 of this Change.
Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>
Comments
Tested on FreeBSD with the "this server is intentionally ignoring signals"
patch, to make it fail. BB tested all the other platforms with well-behaved
openvpn binaries.
Your patch has been applied to the master branch.
commit 5dd1b8b06335831206077a1eb4aa81c3ceb3f3ee
Author: Samuli Seppänen
Date: Sat Oct 26 11:25:14 2024 +0200
t_server_null: use wait instead of marker files
Signed-off-by: Samuli Seppänen <samuli.seppanen@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20241026092515.30559-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg29664.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
@@ -62,6 +62,8 @@
mkdir $t_server_null_logdir
"${srcdir}/t_server_null_server.sh" &
+T_SERVER_NULL_SERVER_PID=$!
+
"${srcdir}/t_server_null_client.sh"
retval=$?
@@ -69,11 +71,9 @@
# that this script does not exit before all --dev null servers are dead and
# their network interfaces are gone. Otherwise t_client.sh will fail because
# pre and post ifconfig output does not match.
-wait
+wait $T_SERVER_NULL_SERVER_PID
-. ./t_server_null_default.rc
-
-if [ -e $SERVER_KILL_FAIL_FILE ]; then
+if [ $? -ne 0 ]; then
exit 1
else
exit $retval
@@ -37,8 +37,9 @@
# Load local configuration, if any
test -r ./t_server_null.rc && . ./t_server_null.rc
-# Remove server kill failure marker file, if any
-rm -f $SERVER_KILL_FAIL_FILE
+# We can't exit immediately on the first failure as that could leave processes
+# lying around.
+retval=0
# Launch test servers
for SUF in $TEST_SERVER_LIST
@@ -81,7 +82,6 @@
# Make sure that the server processes are truly dead before exiting. If a
# server process does not exit in 15 seconds assume it never will, move on and
# hope for the best.
-
echo "Waiting for servers to exit"
for PID_FILE in $server_pid_files
do
@@ -111,6 +111,8 @@
echo "ERROR: had to send SIGKILL to server ${SERVER_NAME} with pid ${SERVER_PID}!"
echo "Tail of server log:"
tail -n 20 "${t_server_null_logdir}/${SERVER_NAME}.log"
- touch $SERVER_KILL_FAIL_FILE
+ retval=1
fi
done
+
+exit $retval