From 28e35b96d02020028d172a23ccfd971f4226b8ec Mon Sep 17 00:00:00 2001 From: Pradip Dhara Date: Mon, 25 Sep 2017 15:21:37 -0700 Subject: [PATCH] Fixing panic when sandbox is nil Signed-off-by: Pradip Dhara Upstream-commit: c4ad0747e929a41ecec7e8c2ae2bd0cc037401ed Component: engine --- components/engine/daemon/network.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/components/engine/daemon/network.go b/components/engine/daemon/network.go index aa03250f90..bf8a2f53d2 100644 --- a/components/engine/daemon/network.go +++ b/components/engine/daemon/network.go @@ -525,18 +525,24 @@ func (daemon *Daemon) deleteLoadBalancerSandbox(n libnetwork.Network) { if len(endpoints) == 1 { sandboxName := n.Name() + "-sbox" - if err := endpoints[0].Info().Sandbox().DisableService(); err != nil { - logrus.Errorf("Failed to disable service on sandbox %s: %v", sandboxName, err) - //Ignore error and attempt to delete the load balancer endpoint + info := endpoints[0].Info() + if info != nil { + sb := info.Sandbox() + if sb != nil { + if err := sb.DisableService(); err != nil { + logrus.Warnf("Failed to disable service on sandbox %s: %v", sandboxName, err) + //Ignore error and attempt to delete the load balancer endpoint + } + } } if err := endpoints[0].Delete(true); err != nil { - logrus.Errorf("Failed to delete endpoint %s (%s) in %s: %v", endpoints[0].Name(), endpoints[0].ID(), sandboxName, err) + logrus.Warnf("Failed to delete endpoint %s (%s) in %s: %v", endpoints[0].Name(), endpoints[0].ID(), sandboxName, err) //Ignore error and attempt to delete the sandbox. } if err := controller.SandboxDestroy(sandboxName); err != nil { - logrus.Errorf("Failed to delete %s sandbox: %v", sandboxName, err) + logrus.Warnf("Failed to delete %s sandbox: %v", sandboxName, err) //Ignore error and attempt to delete the network. } }