Cache configuration lost on reload
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el problema con el Caddyfile mostrado iniciando Caddy, llenando la caché de Nuts y ejecutando después caddy reload --config /etc/caddy/Caddyfile. Rastrea la recarga del controlador de caché y la inicialización del almacenamiento de Nuts, centrándote en por qué la recarga selecciona el almacenamiento predeterminado. La tarea estará completada cuando el almacenamiento configurado /tmp/nuts-configuration siga activo después de la recarga, no aparezca la advertencia sobre el almacenamiento predeterminado y las solicitudes almacenadas en caché sigan indicando aciertos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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"
}
- Lenguaje dominante
- Go
- Estrellas
- 396
- Forks
- 29
- Merge medio
- 32 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de caddyserver/cache-handler
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
caddyserver/cache-handler#138 · 1 comentario · 3 reacciones ·
-
Admin API purge/invalidation still panics with nil pointer on v0.16.0 (same root cause as #140)Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
caddyserver/cache-handler#143 · 2 comentarios ·
-
Can not flush cacheAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
caddyserver/cache-handler#140 · 4 comentarios · 1 reacción ·
-
`Incomming` has a typoAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
caddyserver/cache-handler#139 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
caddyserver/cache-handler#137 · 1 comentario ·
Todos los issues de caddyserver/cache-handler
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
vanderheijden86/b9s#20 ·
-
go-battery needs an ndsctl on PATH: TestPurchaseSessionGuardHoldsThroughTheOutcomeUnknownWindow fails on bare hosts (passes with stub)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
OpenTollGate/tollgate-module-basic-go#726 ·
Los mantenedores suelen responder en 1 día
-
ux waiting for feedback
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
evcc-io/evcc#34527 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
phase:v3 type:harness
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día