From ed01ee1e5ecd6dc46054c37b34c3b1b4e015a287 Mon Sep 17 00:00:00 2001 From: silves-xiang Date: Thu, 14 Dec 2023 10:05:51 +0800 Subject: [PATCH] etcdclient: Fix memory leak caused by for + time.After Signed-off-by: silves-xiang --- client/v3/lease.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/v3/lease.go b/client/v3/lease.go index 85703b1a0..bd067c630 100644 --- a/client/v3/lease.go +++ b/client/v3/lease.go @@ -549,9 +549,12 @@ func (l *lessor) recvKeepAlive(resp *pb.LeaseKeepAliveResponse) { // deadlineLoop reaps any keep alive channels that have not received a response // within the lease TTL func (l *lessor) deadlineLoop() { + timer := time.NewTimer(time.Second) + defer timer.Stop() for { + timer.Reset(time.Second) select { - case <-time.After(time.Second): + case <-timer.C: case <-l.donec: return }