Browse Source

Merge pull request #30038 from tonistiigi/setclusterprovider

[v1.13] Add workaround for possible SetClusterProvider deadlock
Victor Vieux 8 years ago
parent
commit
b60f411292
1 changed files with 3 additions and 1 deletions
  1. 3 1
      daemon/daemon.go

+ 3 - 1
daemon/daemon.go

@@ -449,7 +449,9 @@ func (daemon *Daemon) registerLink(parent, child *container.Container, alias str
 // SetClusterProvider sets a component for querying the current cluster state.
 func (daemon *Daemon) SetClusterProvider(clusterProvider cluster.Provider) {
 	daemon.clusterProvider = clusterProvider
-	daemon.netController.SetClusterProvider(clusterProvider)
+	// call this in a goroutine to allow netcontroller handle this event async
+	// and not block if it is in the middle of talking with cluster
+	go daemon.netController.SetClusterProvider(clusterProvider)
 }
 
 // IsSwarmCompatible verifies if the current daemon