Browse Source

Merge pull request #1457 from aboch/pnc

Lock agent access in addDriverWatches
Madhu Venugopal 8 years ago
parent
commit
7feaa49556
1 changed files with 5 additions and 1 deletions
  1. 5 1
      libnetwork/agent.go

+ 5 - 1
libnetwork/agent.go

@@ -468,8 +468,12 @@ func (n *network) addDriverWatches() {
 
 
 	c := n.getController()
 	c := n.getController()
 	for _, tableName := range n.driverTables {
 	for _, tableName := range n.driverTables {
-		ch, cancel := c.agent.networkDB.Watch(tableName, n.ID(), "")
 		c.Lock()
 		c.Lock()
+		if c.agent == nil {
+			c.Unlock()
+			return
+		}
+		ch, cancel := c.agent.networkDB.Watch(tableName, n.ID(), "")
 		c.agent.driverCancelFuncs[n.ID()] = append(c.agent.driverCancelFuncs[n.ID()], cancel)
 		c.agent.driverCancelFuncs[n.ID()] = append(c.agent.driverCancelFuncs[n.ID()], cancel)
 		c.Unlock()
 		c.Unlock()