Tests: utils: lttng_pgrep spams output when racing with a process
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 20 Apr 2023 15:07:44 +0000 (11:07 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 20 Apr 2023 16:45:26 +0000 (12:45 -0400)
lttng_pgrep is often used to check if a process is alive. As such, it is
often used on PIDs which are tearing down.

The file redirection used in `tr '\0' '\n' < /proc/"$pid"/cmdline` often
fails (which is correct) because the /proc/$pid folder no longer exists.

When this occurs, the test output is cluttered with annoying errors like:
  ./tests/regression/kernel//../../utils/utils.sh: line 151: /proc/845/cmdline: No such file or directory

This part of the command now runs under a subshell to hide the error
when it occurs.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I6a26cb63cd56c46557a73e2e475b0cac729cc67f

tests/utils/utils.sh

index 9ffcc6ff29e072c03bf1571ec10036126f6f9c42..3e1a81ce5f03e3c7a8aa405b7e2ce29ead2abfb3 100644 (file)
@@ -148,7 +148,7 @@ function lttng_pgrep ()
 
        while IFS= read -r pid ; do
                # /proc/pid/cmdline is null separated.
-               if full_command_no_argument=$(tr '\0' '\n' < /proc/"$pid"/cmdline 2>/dev/null | head -n1); then
+               if full_command_no_argument=$( (tr '\0' '\n' < /proc/"$pid"/cmdline) 2>/dev/null | head -n1); then
                        command_basename=$(basename "$full_command_no_argument")
                        if grep -q "$pattern" <<< "$command_basename"; then
                                echo "$pid"
This page took 0.027277 seconds and 4 git commands to generate.