-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deployment: Migrations pod wird lange nicht fertig #1467
Comments
Bester Anhaltspunkt scheinen die DB Connections zu sein, wo zum fraglichen Zeitpunkt keine idle connections mehr verfügbar waren Aktuell ist wieder ein Mailinglist Export am laufen (seit 12:19) und zeigt im Grafana ein ähnliches Bild eventuell sind mehrere Jobs mit lang laufenden queries zu diesem Zeitpunkt aktiv gewesen und das hat die anderen Queries, die abgesetzt werden wenn die Applikation startet blockiert. Ein wichtiger Schritt wäre sicher, die lang laufenden Queries loszuwerden siehe dazu #1470 Des weiteren wurde geklärt, dass die Seach columns via rake im Anschluss an den wagon migrate task laufen |
Die Migrations wurden bewusst in ein eigenes Deployment geschoben. Damit wird vermieden, dass mehrere gleichzeitig startenden Pods sich gegenseitig blockieren (ansonsten bekommt man vermeidbare Der Start des neuen Images wird durch einen InitContainer verzögert, bis alle benötigten Migrations geladen sind ( Da das Erzeugen der SearchColumns nach den Migrations passiert, wird die App hiervon nicht zurückgehalten. Ähnliches gilt für die production-seeds, welche zwar im "Migrations"-Deployment laufen, aber die App nicht aufhalten. Wenn die Migrations im gleichen Pod wie die Rails-App als InitContainer laufen, dauert es also länger bis die App starten kann. |
Beim Release vom 13.12 ist das Problem erneu aufgetreten, Issue findet sich ebenfalls in Sentry https://sentry.puzzle.ch/pitc/hitobito-backend/issues/74115. Beobachtetes Verhalten war wieder analog, dh Migrations Pod braucht sehr lange, dazwischen starten rails und dj pods neu und hängen (bis migrations fertig sind). Mitunter ist der rails pod auch im Ready State aber beantwortetet die Requests scheinbar nicht richtig Da das deployment lange gestanden ist, bin ich dann aktiv geworden, habe pods gelöscht und djs runter skaliert und am Ende auch lang laufenden queries auf der DB von hand gekilled. Dabei habe ich beobachtet, dass unmittelbar nach dem Killen der ersten query aus dem pending-group-queries.txt file das drop der group search column in der migration abschlossen werden konnte. Anschliessend sind pods normal hochgekommen gestartet. Pattern bei den DB connections ist wieder das gleiche, es scheinen konstant (blockierende?) queries aktiv zu sein und dann kommt ein spike beim deployment (ca 12:00) |
Neuerliches Deployment heute abend lief problemlos, dabei wurden vorgängig die lang laufenden Subscription export queries gekilled |
Der performance für den SubscriptionsExport (#1470) wurde deployed, damit ist das Problem hoffentlich gelöst. |
Beim letzten Prod deployment hatte wir eine lange downtime (10 bis 15 minuten), da der Migrations pod nicht in den running state gewechselt hat. Siehe auch https://sentry.puzzle.ch/pitc/hitobito-backend/issues/73956/?environment=production
Wir nehmen an, dass es daran lag, dass gewisse queries, die Query, die der migrations pod absetzt blockiert haben. Anbei ein Auszug aus den queries, die die DB um den deployment Zeitpunkt herum gelogged hat Explore-logs-2025-01-03 15_09_26.json
(
❯ cat ~/Downloads/Explore-logs-2025-01-03\ 15_09_26.json | jq '.[].fields | {session_start,timestamp,statement} ' | less
)Folgendes muss geklärt werden
The text was updated successfully, but these errors were encountered: