From 9671a1d80fedf7a7241e3e7032586f7a361df96c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20M=C3=A1gr?= Date: Fri, 25 Aug 2017 11:20:48 +0200 Subject: [PATCH] Fix port health check false negatives Most of the opened port health checks are failing because containers are not run under root user. This patch makes it to avoid use of lsof so that all containers are checked correctly on opened ports. Closes-bug: #1714077 Co-Authored-By: Derek Higgins Change-Id: I01389ce87f81486fd887d71e6816df76276011e0 --- healthcheck/common.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/healthcheck/common.sh b/healthcheck/common.sh index 9bc272ffc..6bf984d9c 100644 --- a/healthcheck/common.sh +++ b/healthcheck/common.sh @@ -12,13 +12,17 @@ healthcheck_curl () { healthcheck_port () { process=$1 - shift 1 - port_args=() - for arg in "$@"; do - port_args+=("-i" "tcp:${arg}") - done - lsof +c0 -nP "${port_args[@]}" | awk '{print $1}' | grep -q "^${process}$" + # ss truncate command name to 15 characters and this behaviour + # cannot be diabled + if [ ${#process} -gt 15 ] ; then + process=${process:0:15} + fi + + shift 1 + args=$@ + ports=${args// /|} + ss -ntp | awk '{print $5,"-",$6}' | egrep ":($ports)" | grep "$process" } get_config_val () {