From b6fa94fe3c6aba33c28778ab8a034482cea85a86 Mon Sep 17 00:00:00 2001 From: Phenix Rizen Date: Thu, 2 Dec 2021 11:00:22 -0600 Subject: [PATCH 1/2] fix scoping bug for errors on app Run call --- collector/collector.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/collector/collector.go b/collector/collector.go index 1806c1452f..24ebeff720 100644 --- a/collector/collector.go +++ b/collector/collector.go @@ -77,13 +77,18 @@ func (c *Collector) Start(ctx context.Context) error { } c.appDone = make(chan struct{}) - go func() { + runErr := make(chan error, 1) + go func(runErr chan error) { defer close(c.appDone) - appErr := c.svc.Run(ctx) - if appErr != nil { - err = appErr - } - }() + err := c.svc.Run(context.Background()) + runErr <- err + }(runErr) + + rErr := <-runErr + if rErr != nil { + return rErr + } + close(runErr) for state := range c.svc.GetStateChannel() { switch state { From 5518a90ce403b54e7acf721e4733f3023af45512 Mon Sep 17 00:00:00 2001 From: Phenix Rizen Date: Fri, 3 Dec 2021 10:20:00 -0600 Subject: [PATCH 2/2] use passed context in svc run call simplify code --- collector/collector.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/collector/collector.go b/collector/collector.go index 24ebeff720..76e11fe600 100644 --- a/collector/collector.go +++ b/collector/collector.go @@ -78,11 +78,11 @@ func (c *Collector) Start(ctx context.Context) error { c.appDone = make(chan struct{}) runErr := make(chan error, 1) - go func(runErr chan error) { + go func() { defer close(c.appDone) - err := c.svc.Run(context.Background()) + err := c.svc.Run(ctx) runErr <- err - }(runErr) + }() rErr := <-runErr if rErr != nil {