From be9aa09246534a1fdf7c08cf287dbe1e6de375c9 Mon Sep 17 00:00:00 2001 From: Yassine TIJANI Date: Wed, 24 May 2017 17:22:09 +0200 Subject: [PATCH] removing TODO, and explain why we can't filter by id on the matchevent method. Signed-off-by: Yassine TIJANI --- .../cluster/executor/container/controller.go | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/daemon/cluster/executor/container/controller.go b/daemon/cluster/executor/container/controller.go index 8e95816138..29d55faf65 100644 --- a/daemon/cluster/executor/container/controller.go +++ b/daemon/cluster/executor/container/controller.go @@ -28,11 +28,10 @@ const defaultGossipConvergeDelay = 2 * time.Second // Most operations against docker's API are done through the container name, // which is unique to the task. type controller struct { - task *api.Task - adapter *containerAdapter - closed chan struct{} - err error - + task *api.Task + adapter *containerAdapter + closed chan struct{} + err error pulled chan struct{} // closed after pull cancelPull func() // cancels pull context if not nil pullErr error // pull error, only read after pulled closed @@ -146,7 +145,6 @@ func (r *controller) Prepare(ctx context.Context) error { } } } - if err := r.adapter.create(ctx); err != nil { if isContainerCreateNameConflict(err) { if _, err := r.adapter.inspect(ctx); err != nil { @@ -564,15 +562,8 @@ func (r *controller) matchevent(event events.Message) bool { if event.Type != events.ContainerEventType { return false } - - // TODO(stevvooe): Filter based on ID matching, in addition to name. - - // Make sure the events are for this container. - if event.Actor.Attributes["name"] != r.adapter.container.name() { - return false - } - - return true + // we can't filter using id since it will have huge chances to introduce a deadlock. see #33377. + return event.Actor.Attributes["name"] == r.adapter.container.name() } func (r *controller) checkClosed() error {