From b28311e872d12e83db03a404d4b7e15a41f74e85 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 22 Sep 2026 14:53:45 -0700 Subject: [PATCH] Fix flaky TestMultitenantAlertmanager_zoneAwareSharding by waiting for ring convergence (#7854) * Initial plan * Wait for ring convergence in zoneAwareSharding test to fix flakiness Co-authored-by: CharlieTLe <3375195+CharlieTLe@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: CharlieTLe <3375195+CharlieTLe@users.noreply.github.com> (cherry picked from commit 17a8f984c97dbea1a33681e939aea5fcb06c6ecf) Signed-off-by: Charlie Le --- pkg/alertmanager/multitenant_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/alertmanager/multitenant_test.go b/pkg/alertmanager/multitenant_test.go index 93dcc769c3e..63a388d06c9 100644 --- a/pkg/alertmanager/multitenant_test.go +++ b/pkg/alertmanager/multitenant_test.go @@ -860,6 +860,15 @@ func TestMultitenantAlertmanager_zoneAwareSharding(t *testing.T) { am2ZoneA := createInstance(2, "zoneA", registriesZoneA) am1ZoneB := createInstance(3, "zoneB", registriesZoneB) + // Wait until every instance's ring client sees all the instances, otherwise + // ownership is computed against a partial ring view and tenants may get + // double-counted. + for _, am := range []*MultitenantAlertmanager{am1ZoneA, am2ZoneA, am1ZoneB} { + test.Poll(t, 5*time.Second, 3, func() any { + return am.ring.InstancesCount() + }) + } + { require.NoError(t, alertStore.SetAlertConfig(ctx, alertspb.AlertConfigDesc{ User: user1,