From dc9e0906fd8903f9768c1324609849b0bbf011cb Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Mon, 19 Aug 2024 11:27:06 +0100 Subject: [PATCH] Resolve issue when proxy could panic. Issue occured when cache was disabled via environment variables but graphql queries contained the cache directive. --- cache/cache.go | 8 ++++++++ main.go | 1 + 2 files changed, 9 insertions(+) diff --git a/cache/cache.go b/cache/cache.go index 6b1eb59..48274b1 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -76,6 +76,10 @@ func EnableCache(cfg *CacheConfig) { } func CacheLookup(hash string) []byte { + if !IsCacheInitialized() { + return nil + } + obj, found := config.Client.Get(hash) if found { atomic.AddInt64(&cacheStats.CacheHits, 1) @@ -157,3 +161,7 @@ func GetCacheStats() *CacheStats { func ShouldUseRedisCache(cfg *CacheConfig) bool { return cfg.Redis.Enable } + +func IsCacheInitialized() bool { + return config != nil && config.Client != nil +} diff --git a/main.go b/main.go index 41455a6..5cd6958 100644 --- a/main.go +++ b/main.go @@ -105,6 +105,7 @@ func parseConfig() { } libpack_cache.EnableCache(cacheConfig) } + loadRatelimitConfig() once.Do(func() { go enableApi()