diff --git a/daemon/container_operations.go b/daemon/container_operations.go index 7d6d044e9e..4b6340161e 100644 --- a/daemon/container_operations.go +++ b/daemon/container_operations.go @@ -526,14 +526,16 @@ func (daemon *Daemon) updateContainerNetworkSettings(container *container.Contai } } -func (daemon *Daemon) allocateNetwork(container *container.Container) error { - start := time.Now() - controller := daemon.netController - +func (daemon *Daemon) allocateNetwork(container *container.Container) (retErr error) { if daemon.netController == nil { return nil } + var ( + start = time.Now() + controller = daemon.netController + ) + // Cleanup any stale sandbox left over due to ungraceful daemon shutdown if err := controller.SandboxDestroy(container.ID); err != nil { logrus.WithError(err).Errorf("failed to cleanup up stale network sandbox for container %s", container.ID) @@ -594,7 +596,7 @@ func (daemon *Daemon) allocateNetwork(container *container.Container) error { } updateSandboxNetworkSettings(container, sb) defer func() { - if err != nil { + if retErr != nil { sb.Delete() } }()