Arreglo/healthcheck kimai #14
Merged
moritz
merged 2 commits from 2026-10-08 09:06:40 +00:00
escuela-comun/kimai:arreglo/healthcheck-kimai into main
No labels
Milestone
No items
No Milestone
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
appletalk
arjan
basebuilder
BornDeleuze (Born Deleuze)
Brooke
carla
cas (Cassowary)
codegod100
coopcloud
cyrnel
dannygroenewegen (Danny Groenewegen)
decentral1se (d1)
dede
devydave
fauno (fauno)
flancian
Frando
iexos
jade (Jade Ambrose)
javielico (Javielico)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
marlon (marlon)
mayel
mirsal
moosemower
moritz
nicksellen (Nick Sellen)
notplants
oxaliq (sorrel)
p4u1
pau
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
PhiNatalie
renovate-bot (Comrade Renovate Bot)
ripclap
rix
rscmbbng
sef (sef)
simon
sixsmith (Sixsmith)
stevensting
tobias
trav (Trav Fryer)
val (val (he/him))
vaznasty
virtualboys
wolcen (Chris Thompson)
wykwit
xynosis
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: coop-cloud/kimai#14
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
During a fresh deployment of Kimai 2.68.0, Abra reported the application as successfully deployed, but the Kimai web interface returned HTTP 500.
There were two related problems:
curl --fail, so HTTP 500 responses can still result in a successful healthcheck.start_period, causing the application to be restarted while migrations were still running.That left the database partially migrated. Subsequent starts failed with errors such as existing tables, missing columns and a missing
kimai2_sessionstable.After increasing the startup grace period and making the healthcheck fail on HTTP errors, a fresh deployment completed successfully and the web interface worked normally.
The debugging, analysis and preparation of this patch were done collaboratively with ChatGPT (LLM), using the deployment logs and the recipe configuration as the basis for the changes.
@@ -42,3 +42,3 @@entrypoint: /docker-entrypoint.shhealthcheck:test: curl -s -o /dev/null http://localhost:8001 || exit 1test: curl -fsS -o /dev/null http://localhost:8001 || exit 1@moritz just a comment on this! if
curlis going to exit > 0 on failure, the|| exit 1is redundant, unless the healthcheck expects only 1 instead of > 0. which makes me think we'll need to review every healthcheck, for redundancy and missing-fflagI'm not sure what the healthcheck expects but I think
|| exit 1is redundant, as most recipes don't have it. But some do. Maybe it's just copy pasta. I would favor a default healthcheck for all recipies, if possible.Here is just an overview of all curl healthchecks:
@@ -45,2 +44,3 @@test: curl -fsS -o /dev/null http://localhost:8001 || exit 1interval: 30sstart_period: 3mstart_period: 20mdoes this mean it may take 20m for the whole recipe to deploy?
no, it doesn't. For me the first migration took more than 10m, thats way the big 20m.
The healthcheck is just waiting 20m before it starts to restart the container. This value must be high enough, that even on low power systems the healthcheck isn't breaking anything. The only disadvantage is, that if the container is really stuck it takes 20m until it restarts.
20 min goes flying. With all the time coopcloud saves, this shouldn´t be call a disadvantege <3