From bfc556613b981c0be7bc2be35814da4aeddcc686 Mon Sep 17 00:00:00 2001 From: Dong Chen Date: Fri, 12 Feb 2016 15:34:15 -0800 Subject: [PATCH] Lock engine to prevent simultaneous change on `containers` map. Signed-off-by: Dong Chen --- cluster/engine.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cluster/engine.go b/cluster/engine.go index 11acd439da..213594bfc2 100644 --- a/cluster/engine.go +++ b/cluster/engine.go @@ -585,7 +585,10 @@ func (e *Engine) refreshContainer(ID string, full bool) (*Container, error) { } _, err = e.updateContainer(containers[0], e.containers, full) - return e.containers[containers[0].Id], err + e.RLock() + container := e.containers[containers[0].Id] + e.RUnlock() + return container, err } func (e *Engine) updateContainer(c dockerclient.Container, containers map[string]*Container, full bool) (map[string]*Container, error) {