diff --git a/util/workqueue/queue.go b/util/workqueue/queue.go index 14e3bb17..6f706326 100644 --- a/util/workqueue/queue.go +++ b/util/workqueue/queue.go @@ -161,7 +161,10 @@ func (q *Type) Get() (item interface{}, shutdown bool) { return nil, true } - item, q.queue = q.queue[0], q.queue[1:] + item = q.queue[0] + // The underlying array still exists and reference this object, so the object will not be garbage collected. + q.queue[0] = nil + q.queue = q.queue[1:] q.metrics.get(item)