Skip to content

Commit

Permalink
Merge pull request #19760 from giuseppe/print-stderr-only-after-check…
Browse files Browse the repository at this point in the history
…ing-state

oci: print stderr only after checking state
  • Loading branch information
openshift-merge-robot authored Aug 28, 2023
2 parents 009ff3a + 4b34760 commit 44986f5
Showing 1 changed file with 10 additions and 16 deletions.
26 changes: 10 additions & 16 deletions libpod/oci_conmon_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -420,22 +420,6 @@ func (r *ConmonOCIRuntime) StopContainer(ctr *Container, timeout uint, all bool)

killCtr := func(signal uint) (bool, error) {
stderr, err := r.killContainer(ctr, signal, all, true)

// Before handling error from KillContainer, convert STDERR to a []string
// (one string per line of output) and print it, ignoring known OCI runtime
// errors that we don't care about
stderrLines := strings.Split(stderr.String(), "\n")
for _, line := range stderrLines {
if line == "" {
continue
}
if strings.Contains(line, "container not running") || strings.Contains(line, "open pidfd: No such process") || strings.Contains(line, "kill container: No such process") {
logrus.Debugf("Failure to kill container (already stopped?): logged %s", line)
continue
}
fmt.Fprintf(os.Stderr, "%s\n", line)
}

if err != nil {
// There's an inherent race with the cleanup process (see
// #16142, #17142). If the container has already been marked as
Expand All @@ -461,6 +445,16 @@ func (r *ConmonOCIRuntime) StopContainer(ctr *Container, timeout uint, all bool)

return false, err
}

// Before handling error from KillContainer, convert STDERR to a []string
// (one string per line of output) and print it.
stderrLines := strings.Split(stderr.String(), "\n")
for _, line := range stderrLines {
if line != "" {
fmt.Fprintf(os.Stderr, "%s\n", line)
}
}

return false, nil
}

Expand Down

0 comments on commit 44986f5

Please sign in to comment.