test: utils: lttng_pgrep performs lookup on non-existing pid
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 30 Nov 2020 18:54:14 +0000 (13:54 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 1 Dec 2020 02:17:51 +0000 (21:17 -0500)
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 <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I82cb9fd4754c10a5104af495a8a959f4fbd92664

tests/utils/utils.sh

index 574495704a83baa5f2ba30f273131495eef0f3f2..31087877d1639767086f88ed0821613f342c79f8 100644 (file)
@@ -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"
This page took 0.026535 seconds and 4 git commands to generate.