From 8642bba6c4a28e4db2b21042cebfdc7c488d1fac Mon Sep 17 00:00:00 2001 From: Arko Dasgupta Date: Mon, 20 May 2019 14:23:35 -0700 Subject: [PATCH] Network not deleted after stack is removed Make sure adapter.removeNetworks executes during task Remove adapter.removeNetworks was being skipped for cases when isUnknownContainer(err) was true after adapter.remove was executed This fix eliminates the nil return case forcing the function to continue executing unless there is a true error Fixes https://github.com/moby/moby/issues/39225 Signed-off-by: Arko Dasgupta (cherry picked from commit 70fa7b6a3fd9aaada582ae02c50710f218b54d1a) Signed-off-by: Sebastiaan van Stijn Upstream-commit: 75887d37e1ddbef579e239ff0b1b7a2508e486fd Component: engine --- .../daemon/cluster/executor/container/controller.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/components/engine/daemon/cluster/executor/container/controller.go b/components/engine/daemon/cluster/executor/container/controller.go index 6c74d4222a..466bca2f59 100644 --- a/components/engine/daemon/cluster/executor/container/controller.go +++ b/components/engine/daemon/cluster/executor/container/controller.go @@ -369,20 +369,17 @@ func (r *controller) Shutdown(ctx context.Context) error { } if err := r.adapter.shutdown(ctx); err != nil { - if isUnknownContainer(err) || isStoppedContainer(err) { - return nil + if !(isUnknownContainer(err) || isStoppedContainer(err)) { + return err } - - return err } // Try removing networks referenced in this task in case this // task is the last one referencing it if err := r.adapter.removeNetworks(ctx); err != nil { - if isUnknownContainer(err) { - return nil + if !isUnknownContainer(err) { + return err } - return err } return nil