From 4bd0f29ee5f98064f39c4df7f62e61f06a36eced Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 14 Jan 2026 23:50:37 +0800 Subject: [PATCH] fix: resolve linter warning and cache race condition - Suppress revive redundant-test-main-exit warning with //nolint - Fix data race in cache.Clear() by using Delete() instead of map replacement - Both changes maintain correct behavior while fixing CI failures --- store/cache/cache.go | 24 ++++++++++++------------ store/test/main_test.go | 3 ++- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/store/cache/cache.go b/store/cache/cache.go index 8760b3ad5..102f8add3 100644 --- a/store/cache/cache.go +++ b/store/cache/cache.go @@ -161,20 +161,20 @@ func (c *Cache) Delete(_ context.Context, key string) { // Clear removes all values from the cache. func (c *Cache) Clear(_ context.Context) { - if c.config.OnEviction != nil { - c.data.Range(func(key, value any) bool { + count := 0 + c.data.Range(func(key, value any) bool { + if c.config.OnEviction != nil { itm, ok := value.(item) - if !ok { - return true + if ok { + if keyStr, ok := key.(string); ok { + c.config.OnEviction(keyStr, itm.value) + } } - if keyStr, ok := key.(string); ok { - c.config.OnEviction(keyStr, itm.value) - } - return true - }) - } - - c.data = sync.Map{} + } + c.data.Delete(key) + count++ + return true + }) (&c.itemCount).Store(0) } diff --git a/store/test/main_test.go b/store/test/main_test.go index 6890d501f..f0ae03f78 100644 --- a/store/test/main_test.go +++ b/store/test/main_test.go @@ -13,7 +13,8 @@ func TestMain(m *testing.M) { // If DRIVER is set, run tests for that driver only if os.Getenv("DRIVER") != "" { defer TerminateContainers() - os.Exit(m.Run()) + m.Run() //nolint:revive // Exit code is handled by test runner + return } // No DRIVER set - run tests for all drivers sequentially