agentSetup to first check if clusterProvider is nil

- concurrent swarm join and daemon stop seen in
  integration tests may cause agentSetup to access
  a nil clusterProvider, resulting in a panic

Signed-off-by: Alessandro Boch <aboch@docker.com>
This commit is contained in:
Alessandro Boch 2017-04-18 11:29:25 -07:00
parent de0926bf39
commit 46ebc9613e
1 changed files with 7 additions and 0 deletions

View File

@ -187,6 +187,13 @@ func (c *controller) agentSetup() error {
clusterProvider := c.cfg.Daemon.ClusterProvider clusterProvider := c.cfg.Daemon.ClusterProvider
agent := c.agent agent := c.agent
c.Unlock() c.Unlock()
if clusterProvider == nil {
msg := "Aborting initialization of Libnetwork Agent because cluster provider is now unset"
logrus.Errorf(msg)
return fmt.Errorf(msg)
}
bindAddr := clusterProvider.GetLocalAddress() bindAddr := clusterProvider.GetLocalAddress()
advAddr := clusterProvider.GetAdvertiseAddress() advAddr := clusterProvider.GetAdvertiseAddress()
remote := clusterProvider.GetRemoteAddress() remote := clusterProvider.GetRemoteAddress()