From d9e11822dbdf709a5e9a36a5d3eb6023d88bf67f Mon Sep 17 00:00:00 2001 From: Stanislas Lange Date: Thu, 11 Dec 2025 17:11:11 +0100 Subject: [PATCH] fix: use pgrep -f to detect OpenVPN server, not transient processes The previous check using `pgrep -x openvpn` was matching transient openvpn processes like `openvpn --genkey` that run during installation, causing false positives. This led to race conditions where the CI thought the server was running when it was actually still installing. Use `pgrep -f "openvpn.*server.conf"` to specifically match the actual OpenVPN server process running with the server configuration. --- .github/workflows/docker-test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml index 59218e7..2e1e321 100644 --- a/.github/workflows/docker-test.yml +++ b/.github/workflows/docker-test.yml @@ -99,8 +99,9 @@ jobs: run: | echo "Waiting for OpenVPN server to install and start..." for i in {1..60}; do - # Use pgrep -x to match exactly "openvpn" process, not "apt-get install openvpn" - if docker exec openvpn-server pgrep -x openvpn > /dev/null 2>&1; then + # Use pgrep -f to match openvpn running with server.conf, not transient + # processes like "openvpn --genkey" that run during installation + if docker exec openvpn-server pgrep -f "openvpn.*server.conf" > /dev/null 2>&1; then echo "OpenVPN server is running!" break fi @@ -111,7 +112,7 @@ jobs: done # Final check - if ! docker exec openvpn-server pgrep -x openvpn > /dev/null 2>&1; then + if ! docker exec openvpn-server pgrep -f "openvpn.*server.conf" > /dev/null 2>&1; then echo "ERROR: OpenVPN server failed to start" docker logs openvpn-server exit 1