From 3c35851ca4b0eb3a8814ecc7deea9eb2fa01a15b Mon Sep 17 00:00:00 2001 From: SungJin1212 Date: Mon, 23 Mar 2026 11:09:18 +0900 Subject: [PATCH] Fix flaky tests in result caches Signed-off-by: SungJin1212 --- pkg/querier/tripperware/queryrange/results_cache.go | 4 +++- pkg/querier/tripperware/queryrange/results_cache_test.go | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/querier/tripperware/queryrange/results_cache.go b/pkg/querier/tripperware/queryrange/results_cache.go index 6506edfa6e..e794dfd2a9 100644 --- a/pkg/querier/tripperware/queryrange/results_cache.go +++ b/pkg/querier/tripperware/queryrange/results_cache.go @@ -172,6 +172,7 @@ type resultsCache struct { cache cache.Cache limits tripperware.Limits splitter CacheSplitter + now func() time.Time extractor Extractor minCacheExtent int64 // discard any cache extent smaller than this @@ -215,6 +216,7 @@ func NewResultsCacheMiddleware( extractor: extractor, minCacheExtent: (5 * time.Minute).Milliseconds(), splitter: splitter, + now: time.Now, shouldCache: shouldCache, cacheQueryableSamplesStats: cfg.CacheQueryableSamplesStats, } @@ -790,7 +792,7 @@ func (s resultsCache) extentsOverlapOutOfOrderWindow(extents []tripperware.Exten return false } - nowMs := time.Now().UnixMilli() + nowMs := s.now().UnixMilli() outOfOrderCutoffMs := nowMs - int64(outOfOrderWindow/time.Millisecond) for _, extent := range extents { diff --git a/pkg/querier/tripperware/queryrange/results_cache_test.go b/pkg/querier/tripperware/queryrange/results_cache_test.go index 1b1955bb12..4bf93e732e 100644 --- a/pkg/querier/tripperware/queryrange/results_cache_test.go +++ b/pkg/querier/tripperware/queryrange/results_cache_test.go @@ -1855,6 +1855,7 @@ func TestExtentsOverlapOutOfOrderWindow(t *testing.T) { ) require.NoError(t, err) rc := rm.Wrap(nil).(*resultsCache) + rc.now = func() time.Time { return now } overlap := rc.extentsOverlapOutOfOrderWindow(tc.extents, []string{"tenant-a"}) assert.Equal(t, tc.expectedOverlap, overlap) @@ -1943,6 +1944,7 @@ func TestResultsCachePutTTLSelection(t *testing.T) { ) require.NoError(t, err) rc := rm.Wrap(nil).(*resultsCache) + rc.now = func() time.Time { return now } ctx := user.InjectOrgID(context.Background(), "tenant-a") tenantIDs, _ := users.TenantIDs(ctx)