From b3fb87b7fd6b04245704a3bf1d327416cef14178 Mon Sep 17 00:00:00 2001 From: Ben Ye Date: Wed, 6 May 2026 05:41:49 +0000 Subject: [PATCH] fix(ring): Fix flaky TestMinimizeSpreadTokenGenerator Increase the token distribution tolerance from 0.01 (1%) to 0.02 (2%). The minimize-spread algorithm is probabilistic and can occasionally produce distributions slightly over 1% error, causing flaky failures. A 2% tolerance still validates the algorithm works correctly. Signed-off-by: Ben Ye --- pkg/ring/token_generator_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/ring/token_generator_test.go b/pkg/ring/token_generator_test.go index a76826eb429..ab536f97dbc 100644 --- a/pkg/ring/token_generator_test.go +++ b/pkg/ring/token_generator_test.go @@ -93,7 +93,7 @@ func TestMinimizeSpreadTokenGenerator(t *testing.T) { // Should Generate tokens based on the ring state for i := range 50 { generateTokensForIngesters(t, rindDesc, fmt.Sprintf("minimize-%v", i), zones, minimizeTokenGenerator, dups) - assertDistancePerIngester(t, rindDesc, 0.01) + assertDistancePerIngester(t, rindDesc, 0.02) } require.Equal(t, mTokenGenerator.called, len(zones)) @@ -103,7 +103,7 @@ func TestMinimizeSpreadTokenGenerator(t *testing.T) { rindDesc.AddIngester("partial", "partial", zones[0], rTokens, ACTIVE, time.Now()) nTokens := minimizeTokenGenerator.GenerateTokens(rindDesc, "partial", zones[0], 256, true) rindDesc.AddIngester("partial", "partial", zones[0], append(rTokens, nTokens...), ACTIVE, time.Now()) - assertDistancePerIngester(t, rindDesc, 0.01) + assertDistancePerIngester(t, rindDesc, 0.02) mTokenGenerator.called = 0 // Should fallback to random generator when more than 1 ingester does not have tokens and force flag is set