Commit 6540d59f authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[4249] Fixed race conditions when killing kea-lfc.

parent 9eb61a44
......@@ -215,6 +215,28 @@ get_pid() {
fi
}
# Kills processes specified by name.
#
# This function kills all processes having a specified name.
# It uses 'pgrep' to obtain pids of those processes.
# This function should be used when identifying process by
# the value in its PID file is not relevant.
kill_processes() {
local proc_name=${1} # Process name
if [ -z ${proc_name} ]; then
test_lib_error "get_pids requires process name"
clean_exit 1
fi
# Obtain PIDs of running processes.
local pids=$( pgrep ${proc_name} )
# For each PID found, send kill signal.
for pid in ${pids}
do
printf "Shutting down Kea process ${proc_name} having pid %d.\n" ${pid}
kill -9 ${pid}
done
}
# Returns the number of occurrences of the Kea log message in the log file.
# Return value:
# _GET_LOG_MESSAGES: number of log message occurrences.
......@@ -274,6 +296,15 @@ cleanup() {
fi
done
# Kill any running LFC processes. Even though 'kea-lfc' creates PID
# file we rather want to use 'pgrep' to find the process PID, because
# kea-lfc execution is not controlled from the test and thus there
# is possibility that process is already/still running but the PID
# file doesn't exist for it. As a result, the process will not
# be killed. This is not a problem for other processes because
# tests control launching them and monitor when they are shut down.
kill_pids "kea-lfc"
# Remove temporary files.
rm -rf ${LOG_FILE}
# Use asterisk to remove all files starting with the given name,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment