Тесты кэша зелёные, а в проде изредка паникует concurrent map writes
Локальный кэш — обычный map, защищённый мьютексом во всех методах, кроме недавно добавленного Warmup. Тесты с параллельными вызовами проходят. В проде раз в несколько дней процесс падает с fatal error: concurrent map writes.
Как находить такие ошибки до прода?
- Запускать тесты с детектором гонок: go test -race
- Запускать тесты больше раз подряд без флагов
- Добавить в тесты time.Sleep между вызовами
- Заменить map на срез
