From 455c6fb049f9dd8c406b509d8c9c32202d875655 Mon Sep 17 00:00:00 2001 From: jennybuckley Date: Fri, 16 Mar 2018 11:44:09 -0700 Subject: [PATCH] Prevent garbage collector from attempting to sync with 0 resources --- pkg/controller/garbagecollector/garbagecollector.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/controller/garbagecollector/garbagecollector.go b/pkg/controller/garbagecollector/garbagecollector.go index 0c606a210db..93a96c20feb 100644 --- a/pkg/controller/garbagecollector/garbagecollector.go +++ b/pkg/controller/garbagecollector/garbagecollector.go @@ -172,6 +172,14 @@ func (gc *GarbageCollector) Sync(discoveryClient discovery.ServerResourcesInterf // Get the current resource list from discovery. newResources := GetDeletableResources(discoveryClient) + // This can occur if there is an internal error in GetDeletableResources. + // If the gc attempts to sync with 0 resources it will block forever. + // TODO: Implement a more complete solution for the garbage collector hanging. + if len(newResources) == 0 { + glog.V(5).Infof("no resources reported by discovery, skipping garbage collector sync") + return + } + // Decide whether discovery has reported a change. if reflect.DeepEqual(oldResources, newResources) { glog.V(5).Infof("no resource updates from discovery, skipping garbage collector sync")