From 3efff6d4e801a2dd80c3dc929174b959feff54a2 Mon Sep 17 00:00:00 2001 From: Tobi Knaup Date: Wed, 8 Apr 2015 14:45:16 -0700 Subject: [PATCH 1/2] kubelet syncloop should stop if/when updates chan closes --- pkg/kubelet/kubelet.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 9de5e4af3d8..515a8988c49 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1632,7 +1632,10 @@ func (kl *Kubelet) syncLoop(updates <-chan PodUpdate, handler SyncHandler) { unsyncedPod := false podSyncTypes := make(map[types.UID]metrics.SyncPodType) select { - case u := <-updates: + case u, ok := <-updates: + if !ok { + return + } kl.podManager.UpdatePods(u, podSyncTypes) unsyncedPod = true case <-time.After(kl.resyncInterval): From 3932dfd8bbdf0809fad5ec7331b7ca364d455f2a Mon Sep 17 00:00:00 2001 From: Tobi Knaup Date: Fri, 10 Apr 2015 17:30:04 -0700 Subject: [PATCH 2/2] Log an error when update channel is closed. --- pkg/kubelet/kubelet.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 515a8988c49..ced9e250557 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1634,6 +1634,7 @@ func (kl *Kubelet) syncLoop(updates <-chan PodUpdate, handler SyncHandler) { select { case u, ok := <-updates: if !ok { + glog.Errorf("Update channel is closed. Exiting the sync loop.") return } kl.podManager.UpdatePods(u, podSyncTypes)