From 39dc28a4dff050d741de47073ede16a07a6db31d Mon Sep 17 00:00:00 2001 From: Dong Chen Date: Tue, 19 Jan 2016 14:10:14 -0800 Subject: [PATCH] Fix a race condition in pending engine validation, discard parallel validation result. Signed-off-by: Dong Chen --- cluster/swarm/cluster.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cluster/swarm/cluster.go b/cluster/swarm/cluster.go index 19bbe4c392..4cd5d96ebe 100644 --- a/cluster/swarm/cluster.go +++ b/cluster/swarm/cluster.go @@ -271,6 +271,11 @@ func (c *Cluster) validatePendingEngine(engine *cluster.Engine) bool { c.Lock() defer c.Unlock() + // Only validate engines from pendingEngines list + if _, exists := c.pendingEngines[engine.Addr]; !exists { + return false + } + // Make sure the engine ID is unique. if old, exists := c.engines[engine.ID]; exists { if old.Addr != engine.Addr {