From f9f6e8ed26801988f9e09603ca3e1fc9d4070265 Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Fri, 18 Mar 2016 10:46:30 +0000 Subject: [PATCH] Protect container-addrs against stopped containers --- common/utils.go | 4 ++++ prog/weaveutil/addrs.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/common/utils.go b/common/utils.go index 63b7b5e2..9c348902 100644 --- a/common/utils.go +++ b/common/utils.go @@ -4,6 +4,7 @@ import ( "github.com/vishvananda/netlink" "github.com/vishvananda/netns" "net" + "os" "runtime" "strings" ) @@ -53,6 +54,9 @@ func FindNetDevs(processID int, match func(string) bool) ([]NetDev, error) { ns, err := netns.GetFromPid(processID) if err != nil { + if os.IsNotExist(err) { + return nil, nil + } return nil, err } defer ns.Close() diff --git a/prog/weaveutil/addrs.go b/prog/weaveutil/addrs.go index 4fc38575..06e9424b 100644 --- a/prog/weaveutil/addrs.go +++ b/prog/weaveutil/addrs.go @@ -49,5 +49,9 @@ func getNetDevs(bridgeName string, c *docker.Client, containerID string) ([]comm return nil, err } + if container.State.Pid == 0 { + return nil, nil + } + return common.GetWeaveNetDevs(container.State.Pid) }