From dec608f3cdbd5facbdead7d753a873b3b12afd7d Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Mon, 24 Apr 2023 11:48:21 +0200 Subject: [PATCH] don't block events loop collecting logs Signed-off-by: Nicolas De Loof --- pkg/compose/logs.go | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/pkg/compose/logs.go b/pkg/compose/logs.go index c9a5ff966..6a67d0143 100644 --- a/pkg/compose/logs.go +++ b/pkg/compose/logs.go @@ -96,18 +96,21 @@ func (s *composeService) Logs( ID: c.ID, Service: c.Labels[api.ServiceLabel], }) - err := s.logContainers(ctx, consumer, c, api.LogOptions{ - Follow: options.Follow, - Since: t.Format(time.RFC3339Nano), - Until: options.Until, - Tail: options.Tail, - Timestamps: options.Timestamps, + eg.Go(func() error { + err := s.logContainers(ctx, consumer, c, api.LogOptions{ + Follow: options.Follow, + Since: t.Format(time.RFC3339Nano), + Until: options.Until, + Tail: options.Tail, + Timestamps: options.Timestamps, + }) + if _, ok := err.(errdefs.ErrNotImplemented); ok { + // ignore + return nil + } + return err }) - if _, ok := err.(errdefs.ErrNotImplemented); ok { - // ignore - return nil - } - return err + return nil }, func(c types.Container, t time.Time) error { printer.HandleEvent(api.ContainerEvent{ Type: api.ContainerEventAttach,