From 2f21912570e28a6e374a7fd2e7b5f26a4e5ab48c Mon Sep 17 00:00:00 2001 From: xuzhonghu Date: Tue, 14 Sep 2021 09:53:53 +0800 Subject: [PATCH] Fix workqueue memory leak Kubernetes-commit: 25060beef0c536e80b53507ec445695a7305db00 --- util/workqueue/queue.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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)