From 11d519b38541fe4c05b11e15be6c90ae5ae37f22 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 6 Dec 2021 00:24:57 +0800 Subject: [PATCH] Test cache during init (#17852) --- modules/cache/cache.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/cache/cache.go b/modules/cache/cache.go index 3a2732c34..e7630638b 100644 --- a/modules/cache/cache.go +++ b/modules/cache/cache.go @@ -8,6 +8,7 @@ import ( "fmt" "strconv" + "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" mc "gitea.com/go-chi/cache" @@ -35,6 +36,20 @@ func NewContext() error { if conn, err = newCache(setting.CacheService.Cache); err != nil { return err } + const testKey = "__gitea_cache_test" + const testVal = "test-value" + if err = conn.Put(testKey, testVal, 10); err != nil { + return err + } + val := conn.Get(testKey) + if valStr, ok := val.(string); !ok || valStr != testVal { + // If the cache is full, the Get may not read the expected value stored by Put. + // Since we have checked that Put can success, so we just show a warning here, do not return an error to panic. + log.Warn("cache (adapter:%s, config:%s) doesn't seem to work correctly, set test value '%v' but get '%v'", + setting.CacheService.Cache.Adapter, setting.CacheService.Cache.Conn, + testVal, val, + ) + } } return err