aboutsummaryrefslogtreecommitdiff
path: root/pkg/domain/infra
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2022-06-27 14:41:04 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2022-06-28 10:38:12 +0200
commit0e03a64f9956b237812ea11ecab83e1b05f025a0 (patch)
treebd53f106a992a8ea608723673feba6463c6f9c05 /pkg/domain/infra
parent0cabd8006b6ba9c123943e3072e740a9a681a1a0 (diff)
downloadpodman-0e03a64f9956b237812ea11ecab83e1b05f025a0.tar.gz
podman-0e03a64f9956b237812ea11ecab83e1b05f025a0.tar.bz2
podman-0e03a64f9956b237812ea11ecab83e1b05f025a0.zip
pod: ps does not race with rm
the "pod ps" command first retrieves the list of all pods, then iterates over the list to inspect each pod. This introduce a race since a pod could be deleted in the meanwhile by another process. Solve it by ignoring the define.ErrNoSuchPod error. Closes: https://github.com/containers/podman/issues/14736 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'pkg/domain/infra')
-rw-r--r--pkg/domain/infra/abi/pods.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/pkg/domain/infra/abi/pods.go b/pkg/domain/infra/abi/pods.go
index 76b0676ed..1dca8c580 100644
--- a/pkg/domain/infra/abi/pods.go
+++ b/pkg/domain/infra/abi/pods.go
@@ -483,6 +483,9 @@ func (ic *ContainerEngine) PodPs(ctx context.Context, options entities.PodPSOpti
for _, p := range pds {
r, err := ic.listPodReportFromPod(p)
if err != nil {
+ if errors.Is(err, define.ErrNoSuchPod) || errors.Is(err, define.ErrNoSuchCtr) {
+ continue
+ }
return nil, err
}
reports = append(reports, r)