From 30e7388c88e29e11def4302ae740b677a6309019 Mon Sep 17 00:00:00 2001 From: "fengyun.rui" Date: Thu, 20 Feb 2025 22:55:54 +0800 Subject: [PATCH] fix: race slice for list function of ring client (#2931) * fix: race slice for list of ring client Signed-off-by: rfyiamcool * fix: copy wrong list Co-authored-by: Nedyalko Dyakov --------- Signed-off-by: rfyiamcool Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> Co-authored-by: Nedyalko Dyakov --- ring.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ring.go b/ring.go index b40221734..06a26020a 100644 --- a/ring.go +++ b/ring.go @@ -341,7 +341,8 @@ func (c *ringSharding) List() []*ringShard { c.mu.RLock() if !c.closed { - list = c.shards.list + list = make([]*ringShard, len(c.shards.list)) + copy(list, c.shards.list) } c.mu.RUnlock()