diff --git a/agent/apphealth.go b/agent/apphealth.go index d53c76e57a9b8..88e107160d99a 100644 --- a/agent/apphealth.go +++ b/agent/apphealth.go @@ -60,8 +60,10 @@ func NewWorkspaceAppHealthReporter(logger slog.Logger, workspaceAgentApps Worksp continue } app := nextApp - t := time.NewTicker(time.Duration(app.Healthcheck.Interval) * time.Second) go func() { + t := time.NewTicker(time.Duration(app.Healthcheck.Interval) * time.Second) + defer t.Stop() + for { select { case <-ctx.Done(): @@ -118,6 +120,7 @@ func NewWorkspaceAppHealthReporter(logger slog.Logger, workspaceAgentApps Worksp lastHealth := copyHealth(health) mu.Unlock() reportTicker := time.NewTicker(time.Second) + defer reportTicker.Stop() // every second we check if the health values of the apps have changed // and if there is a change we will report the new values. for { diff --git a/enterprise/derpmesh/derpmesh_test.go b/enterprise/derpmesh/derpmesh_test.go index 7fad141238442..7c7331d21c355 100644 --- a/enterprise/derpmesh/derpmesh_test.go +++ b/enterprise/derpmesh/derpmesh_test.go @@ -74,6 +74,7 @@ func TestDERPMesh(t *testing.T) { go func() { defer close(closed) ticker := time.NewTicker(50 * time.Millisecond) + defer ticker.Stop() for { select { case <-ctx.Done(): @@ -118,6 +119,7 @@ func TestDERPMesh(t *testing.T) { go func() { defer close(closed) ticker := time.NewTicker(50 * time.Millisecond) + defer ticker.Stop() for { select { case <-ctx.Done(): @@ -169,6 +171,7 @@ func TestDERPMesh(t *testing.T) { go func() { defer close(closed) ticker := time.NewTicker(50 * time.Millisecond) + defer ticker.Stop() for { select { case <-ctx.Done():