From 5ffcd162b5242df1937c1e03e22232713e605731 Mon Sep 17 00:00:00 2001 From: lzhfromustc Date: Tue, 23 Mar 2021 22:50:52 -0400 Subject: [PATCH] discovery & test: Fix goroutine leaks by adding 1 buffer to channel Signed-off-by: Ziheng Liu --- daemon/cluster/controllers/plugin/controller_test.go | 6 +++--- daemon/graphdriver/devmapper/devmapper_test.go | 2 +- pkg/discovery/file/file.go | 4 ++-- pkg/discovery/memory/memory.go | 4 ++-- pkg/discovery/nodes/nodes.go | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/daemon/cluster/controllers/plugin/controller_test.go b/daemon/cluster/controllers/plugin/controller_test.go index 0611d59d9c..832901d79f 100644 --- a/daemon/cluster/controllers/plugin/controller_test.go +++ b/daemon/cluster/controllers/plugin/controller_test.go @@ -108,7 +108,7 @@ func TestWaitCancel(t *testing.T) { } ctxCancel, cancel := context.WithCancel(ctx) - chErr := make(chan error) + chErr := make(chan error, 1) go func() { chErr <- c.Wait(ctxCancel) }() @@ -134,7 +134,7 @@ func TestWaitDisabled(t *testing.T) { t.Fatal(err) } - chErr := make(chan error) + chErr := make(chan error, 1) go func() { chErr <- c.Wait(ctx) }() @@ -215,7 +215,7 @@ func TestWaitEnabled(t *testing.T) { t.Fatal(err) } - chErr := make(chan error) + chErr := make(chan error, 1) go func() { chErr <- c.Wait(ctx) }() diff --git a/daemon/graphdriver/devmapper/devmapper_test.go b/daemon/graphdriver/devmapper/devmapper_test.go index afd6c5b4d9..5d9c8f7ab3 100644 --- a/daemon/graphdriver/devmapper/devmapper_test.go +++ b/daemon/graphdriver/devmapper/devmapper_test.go @@ -136,7 +136,7 @@ func TestDevmapperLockReleasedDeviceDeletion(t *testing.T) { // DeviceSet Lock. If lock has not been released, this will hang. driver.DeviceSet.cleanupDeletedDevices() - doneChan := make(chan bool) + doneChan := make(chan bool, 1) go func() { driver.DeviceSet.Lock() diff --git a/pkg/discovery/file/file.go b/pkg/discovery/file/file.go index 1494af485f..1b7b2fd71f 100644 --- a/pkg/discovery/file/file.go +++ b/pkg/discovery/file/file.go @@ -60,8 +60,8 @@ func (s *Discovery) fetch() (discovery.Entries, error) { // Watch is exported func (s *Discovery) Watch(stopCh <-chan struct{}) (<-chan discovery.Entries, <-chan error) { - ch := make(chan discovery.Entries) - errCh := make(chan error) + ch := make(chan discovery.Entries, 1) + errCh := make(chan error, 1) ticker := time.NewTicker(s.heartbeat) go func() { diff --git a/pkg/discovery/memory/memory.go b/pkg/discovery/memory/memory.go index 81f973e285..08b2ef1c34 100644 --- a/pkg/discovery/memory/memory.go +++ b/pkg/discovery/memory/memory.go @@ -33,8 +33,8 @@ func (s *Discovery) Initialize(_ string, heartbeat time.Duration, _ time.Duratio // Watch sends periodic discovery updates to a channel. func (s *Discovery) Watch(stopCh <-chan struct{}) (<-chan discovery.Entries, <-chan error) { - ch := make(chan discovery.Entries) - errCh := make(chan error) + ch := make(chan discovery.Entries, 1) + errCh := make(chan error, 1) ticker := time.NewTicker(s.heartbeat) go func() { diff --git a/pkg/discovery/nodes/nodes.go b/pkg/discovery/nodes/nodes.go index b1d45aa2e6..299ca46f2e 100644 --- a/pkg/discovery/nodes/nodes.go +++ b/pkg/discovery/nodes/nodes.go @@ -39,7 +39,7 @@ func (s *Discovery) Initialize(uris string, _ time.Duration, _ time.Duration, _ // Watch is exported func (s *Discovery) Watch(stopCh <-chan struct{}) (<-chan discovery.Entries, <-chan error) { - ch := make(chan discovery.Entries) + ch := make(chan discovery.Entries, 1) go func() { defer close(ch) ch <- s.entries