From 788feab3a7de44a4749e5a861e3b6f778aa4088b Mon Sep 17 00:00:00 2001 From: Danny Yates Date: Wed, 27 Nov 2013 16:53:36 +0000 Subject: [PATCH] Handle the case where poolAdd() gives an error for an unknown pool type --- server.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server.go b/server.go index a5c91fa84e..3641e2fdc8 100644 --- a/server.go +++ b/server.go @@ -988,11 +988,15 @@ func (srv *Server) ImagePull(localName string, tag string, out io.Writer, sf *ut out = utils.NewWriteFlusher(out) - if c, err := srv.poolAdd("pull", localName+":"+tag); err != nil { - // Another pull of the same repository is already taking place; just wait for it to finish - out.Write(sf.FormatStatus("", "Repository %s already being pulled by another client. Waiting.", localName)) - <-c - return nil + c, err := srv.poolAdd("pull", localName+":"+tag) + if err != nil { + if c != nil { + // Another pull of the same repository is already taking place; just wait for it to finish + out.Write(sf.FormatStatus("", "Repository %s already being pulled by another client. Waiting.", localName)) + <-c + return nil + } + return err } defer srv.poolRemove("pull", localName+":"+tag)