From: Jonathan Rajotte Date: Mon, 30 Nov 2020 18:54:14 +0000 (-0500) Subject: test: utils: lttng_pgrep performs lookup on non-existing pid X-Git-Tag: v2.13.0-rc1~406 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=00d1ff64c4c7a19cd9e8bd705d76c5834d6dd822 test: utils: lttng_pgrep performs lookup on non-existing pid Observed issue ============== # Killing (signal SIGTERM) lttng-sessiond and lt-lttng-sessiond pids: 20962 20963 ./tests/regression/tools/trigger/start-stop//../../../../utils/utils.sh: line 103: /proc/20963/cmdline: No such file or directory Cause ===== lttng_pgrep performs a two step search/validation for the pattern. Since lttng_pgrep is used during tear-down of process (staged termination signalling) a process returned by pgrep might exit before the second check. Solution ======== Simply silence the error. The code flow already acknowledges the possibility of failure here. Known drawbacks ========= None References ========== Fixes: #1292 Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau Change-Id: I82cb9fd4754c10a5104af495a8a959f4fbd92664 --- diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index 574495704..31087877d 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -100,7 +100,7 @@ function lttng_pgrep () while IFS= read -r pid ; do # /proc/pid/cmdline is null separated. - if full_command_no_argument=$(cut -d '' -f 1 < /proc/"$pid"/cmdline); then + if full_command_no_argument=$(cut -d '' -f 1 2>/dev/null < /proc/"$pid"/cmdline); then command_basename=$(basename "$full_command_no_argument") if grep -q "$pattern" <<< "$command_basename"; then echo "$pid"