From efa1980cd438bc391e31d7a9fa48cf3f939a084b 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: a802e788602ff6ad87e1cbeaf3fb5d6a6d874ba1 --- 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 f7c14ddcd..5a96d3fa7 100644 --- a/util/workqueue/queue.go +++ b/util/workqueue/queue.go @@ -155,7 +155,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)