]> granicus.if.org Git - pdns/commitdiff
When test service startup timeout was reached kill (cleanup) still running test services
authorThomas D <whissi@whissi.de>
Fri, 13 Feb 2015 12:33:23 +0000 (13:33 +0100)
committerThomas D <whissi@whissi.de>
Tue, 17 Feb 2015 09:15:03 +0000 (10:15 +0100)
If curl for example isn't installed or fails to check the service status for any reason,
we need to kill the test service if still running to prevent any resource leak.

modules/remotebackend/testrunner.sh

index 079750e30ff680e9f2df97ac4f948281b6707596..6b06504916dcd476eb103b1742da9eada51c2853 100755 (executable)
@@ -39,6 +39,13 @@ function start_web() {
     let timeout=timeout+1
   done
 
+  if kill -0 ${webrick_pid} 2>/dev/null; then
+    # if something is wrong with curl (i.e. curl isn't installed, localhost is firewalled ...)
+    # the status check will fail -- cleanup required!
+    echo >&2 "WARNING: Timeout (${timeout}s) reached: \"${1}\" test service process is running but status check failed"
+    kill -KILL ${webrick_pid} 2>/dev/null
+  fi
+
   echo >&2 "ERROR: A timeout (${timeout}s) was reached while waiting for \"${1}\" test service to start!"
   echo >&2 "       See \"modules/remotebackend/${service_logfile}\" for more details."
   exit 69
@@ -98,6 +105,12 @@ function start_zeromq() {
     let timeout=timeout+1
   done
 
+  if kill -0 ${zeromq_pid} 2>/dev/null; then
+    # not sure when this can happen but we should cleanup any process we started
+    echo >&2 "WARNING: Timeout (${timeout}s) reached: \"ZeroMQ\" test service process is running but status check failed"
+    kill -KILL ${zeromq_pid} 2>/dev/null
+  fi
+
   echo >&2 "ERROR: A timeout (${timeout}s) was reached while waiting for \"ZeroMQ\" test service to start!"
   echo >&2 "       See \"modules/remotebackend/${service_logfile}\" for more details."
   exit 69
@@ -155,6 +168,12 @@ function start_unix() {
     let timeout=timeout+1
   done
 
+  if kill -0 ${socat_pid} 2>/dev/null; then
+    # not sure when this can happen but we should cleanup any process we started
+    echo >&2 "WARNING: Timeout (${timeout}s) reached: \"UNIX socket\" test service process is running but status check failed"
+    kill -KILL ${socat_pid} 2>/dev/null
+  fi
+
   echo >&2 "ERROR: A timeout (${timeout}s) was reached while waiting for \"UNIX socket\" test service to start!"
   exit 69
 }