Cache configuration lost on reload
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Reproduisez le problème avec le Caddyfile montré en démarrant Caddy, en remplissant le cache Nuts, puis en exécutant caddy reload --config /etc/caddy/Caddyfile. Suivez le rechargement du gestionnaire de cache et l’initialisation du stockage Nuts, en vous concentrant sur la raison pour laquelle le rechargement sélectionne le stockage par défaut. La tâche est terminée lorsque le stockage configuré /tmp/nuts-configuration reste actif après le rechargement, que l’avertissement concernant le stockage par défaut n’apparaît plus et que les requêtes mises en cache signalent toujours des hits.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hello,
whenever I reload Caddy, either automatically by using the -w flag of caddy run or by running caddy reload --config /etc/caddy/Caddyfile, the cache seems to loose its configuration.
When first starting caddy, everything looks fine:
{"level":"info","ts":1764181169.6021588,"msg":"maxprocs: Leaving GOMAXPROCS=6: CPU quota undefined"}
{"level":"info","ts":1764181169.6022556,"msg":"GOMEMLIMIT is updated","package":"github.com/KimMachineGun/automemlimit/memlimit","GOMEMLIMIT":15010014412,"previous":9223372036854775807}
{"level":"info","ts":1764181169.602276,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
{"level":"info","ts":1764181169.603072,"msg":"adapted config to JSON","adapter":"caddyfile"}
{"level":"warn","ts":1764181169.6030767,"msg":"Caddyfile input is not formatted; run 'caddy fmt --overwrite' to fix inconsistencies","adapter":"caddyfile","file":"/etc/caddy/Caddyfile","line":4}
{"level":"info","ts":1764181169.603848,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
{"level":"info","ts":1764181169.604289,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc0001b2180"}
{"level":"info","ts":1764181169.6060863,"logger":"http.handlers.cache","msg":"Set backend timeout to 10s"}
{"level":"info","ts":1764181169.6061225,"logger":"http.handlers.cache","msg":"Set cache timeout to 10ms"}
{"level":"info","ts":1764181169.606124,"logger":"http.handlers.cache","msg":"Souin configuration is now loaded."}
{"level":"warn","ts":1764181169.6062827,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":4443"}
{"level":"warn","ts":1764181169.6062887,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":4443"}
{"level":"info","ts":1764181169.60629,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
{"level":"info","ts":1764181169.6107454,"msg":"autosaved config (load with --resume flag)","file":"/root/.config/caddy/autosave.json"}
{"level":"info","ts":1764181169.6107526,"msg":"serving initial configuration"}
{"level":"info","ts":1764181169.6152978,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/root/.local/share/caddy"}
{"level":"info","ts":1764181169.6198232,"logger":"tls","msg":"finished cleaning storage units"}
I can verify that caching works:
$ curl -i localhost:4443/nuts-configuration
HTTP/1.1 200 OK
Cache-Control:
Cache-Status: Souin; fwd=uri-miss; stored; key=GET-http-localhost:4443-/nuts-configuration
Content-Length: 10
Content-Type: text/plain; charset=utf-8
Server: Caddy
Date: Wed, 26 Nov 2025 18:25:42 GMT
Hello nuts
$ curl -i localhost:4443/nuts-configuration
HTTP/1.1 200 OK
Age: 2
Cache-Control:
Cache-Status: Souin; hit; ttl=1498; key=GET-http-localhost:4443-/nuts-configuration; detail=NUTS
Content-Length: 10
Content-Type: text/plain; charset=utf-8
Date: Wed, 26 Nov 2025 18:25:42 GMT
Server: Caddy
Hello nuts
$ curl -i localhost:4443/nuts-configuration
HTTP/1.1 200 OK
Age: 4
Cache-Control:
Cache-Status: Souin; hit; ttl=1496; key=GET-http-localhost:4443-/nuts-configuration; detail=NUTS
Content-Length: 10
Content-Type: text/plain; charset=utf-8
Date: Wed, 26 Nov 2025 18:25:42 GMT
Server: Caddy
Hello nuts
Then after editing a trivial thing, e.g. appending a number to the static response body, and running caddy reload --config /etc/caddy/Caddyfile:
{"level":"info","ts":1764181205.652986,"logger":"admin.api","msg":"received request","method":"POST","host":"localhost:2019","uri":"/load","remote_ip":"127.0.0.1","remote_port":"53638","headers":{"Accept-Encoding":["gzip"],"Content-Length":["1513"],"Content-Type":["application/json"],"Origin":["http://localhost:2019"],"User-Agent":["Go-http-client/1.1"]}}
{"level":"info","ts":1764181205.6536577,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
{"level":"warn","ts":1764181205.6540132,"logger":"http.handlers.cache","msg":"You're running Souin with the default storage that is not optimized and for development purpose. We recommend to use at least one of the storages from https://github.com/darkweak/storages"}
{"level":"info","ts":1764181205.654029,"logger":"http.handlers.cache","msg":"Set backend timeout to 10s"}
{"level":"info","ts":1764181205.6540427,"logger":"http.handlers.cache","msg":"Set cache timeout to 10ms"}
{"level":"info","ts":1764181205.6540506,"logger":"http.handlers.cache","msg":"Souin configuration is now loaded."}
{"level":"warn","ts":1764181205.6541312,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":4443"}
{"level":"warn","ts":1764181205.6541579,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":4443"}
{"level":"info","ts":1764181205.6541655,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
{"level":"info","ts":1764181205.6541889,"logger":"http","msg":"servers shutting down with eternal grace period"}
{"level":"info","ts":1764181205.6543622,"msg":"autosaved config (load with --resume flag)","file":"/root/.config/caddy/autosave.json"}
{"level":"info","ts":1764181205.6543758,"logger":"admin.api","msg":"load complete"}
{"level":"info","ts":1764181205.654874,"logger":"admin","msg":"stopped previous server","address":"localhost:2019"}
Note the You're running Souin with the default storage that is not optimized and for development purpose. We recommend to use at least one of the storages from https://github.com/darkweak/storages message.
Afterwards the cache is gone, note the uri-miss in the Cache-Status header:
$ curl -i localhost:4443/nuts-configuration
HTTP/1.1 200 OK
Cache-Control:
Cache-Status: Souin; fwd=uri-miss; stored; key=GET-http-localhost:4443-/nuts-configuration
Content-Length: 11
Content-Type: text/plain; charset=utf-8
Server: Caddy
Date: Wed, 26 Nov 2025 18:26:10 GMT
Hello nuts2
After a complete Caddy restart, the cache will be back!
This is my Caddyfile:
:4443
respond "Hello World!"
route /nuts-configuration {
cache {
ttl 1500s
nuts {
configuration {
Dir /tmp/nuts-configuration
EntryIdxMode 1
RWMode 0
SegmentSize 1024
NodeNum 42
SyncEnable true
StartFileLoadingMode 1
}
}
}
respond "Hello nuts"
}
- Langage dominant
- Go
- Étoiles
- 394
- Forks
- 30
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de caddyserver/cache-handler
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
caddyserver/cache-handler#138 · 1 commentaire · 3 réactions ·
-
Difficulté 3/5 Une demi-journée Accessibilité débutants 45/100
caddyserver/cache-handler#146 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
caddyserver/cache-handler#145 ·
-
Admin API purge/invalidation still panics with nil pointer on v0.16.0 (same root cause as #140)Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 76/100
caddyserver/cache-handler#143 · 2 commentaires ·
-
Can not flush cacheOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
caddyserver/cache-handler#140 · 4 commentaires · 1 réaction ·
Toutes les issues de caddyserver/cache-handler
Issues similaires
-
Dokumentasjon på nais defaultsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
agent-butler-finding bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
jordansmall/spindrift#6161 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
open-telemetry/opentelemetry-go-compile-instrumentation#1635 ·
Les mainteneurs répondent en général sous 2 jours
-
C-bug O-community X-blathers-untriaged
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
cockroachdb/cockroach#176210 · 1 commentaire ·
-
VLAgent `spec.k8sCollector.includePodLabels: false` has no effectPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
VictoriaMetrics/operator#2772 ·
Les mainteneurs répondent en général sous 1 jour