1 postmortems/2022 12 14 nextcloud
kiara edited this page 2022-12-18 21:14:46 +00:00

Samenvatting

Een update van Nextcloud van bleek meerdere bugs te brengen. Hierop is over de volgende dag een backup hersteld en belangrijke gegevens van na de backup bijgevoegd.

Impact

  • Nextcloud is een dag in maintenance mode gezet, waardoor de aanmeld formulieren voor de algemene vergadering van 2023-01-28 niet bereikbaar waren.
  • Herstel van wijzigingen van na de backup was imperfect, in de zin dat reconstructie hiervan focus had op user impact. Hierdoor waren bijvoorbeeld comments wel hersteld, maar kleinere dingen als notificaties niet.
  • In de tijd tussen de update en het aanzetten van maintenance mode waren in ieder geval de volgende symptomen aanwezig in de Nextcloud web interface:
    • geen apps zichtbaar in de balk boven
    • bestanden niet zichtbaar
    • bestanden faalden te openen in de web interface

Tijdlijn

2022-12-14

  • 18:52: een mail notificatie van een nextcloud draad noemt dat versie 25 uit is.
  • 19:40: kiara update nextcloud, maar i.t.t. eerder ditmaal per command-line. verscheidene mankementen doen voor. kijkt of de problemen te fixen zijn.
  • 21:21: besluit dat een rollback de beste oplossing is, vraagt teamlid om backup om te herstellen.

2022-12-15

  • 7:59: teamlid meldt dat eigen backups nog niet de cloud server omvatten.
  • 11:27: start backup om wijzigingen veilig te stellen, zet maintenance mode aan om te signaleren dat ALV aanmeldingen beter later kunnen wanneer zeker is dat er info verloren gaat van tussen de backup en diens herstel.
  • 11:55: overleg met bestuurslid, die voorstel bevestigt om backup van host te herstellen
  • 12:05: licht andere groepen in over storing
  • 13:25: met backup van voornaamste zaken af, contacteert host met verzoek om backup te herstellen
  • 15:25: stelt voor directe notificatie aan host te sturen via urgent optie in contact formulier
  • ~15:50: na overleg met bestuurslid, stuurt host urgent gemarkeerd bericht
  • 16:14: host bevestigt verzoek
  • 19:07: host geeft aan dat de backup disk aangeleverd is (van 2022-12-14 09:28:55)
  • 19:29: herstelt eerdere backup, begint herstel wijzigingen in de database van na de backup met de meeste impact voor gebruikers, waaronder comments, wijzigingen in Deck, en Forms aanmeldingen.
  • 21:56: met voorname db wijzigingen hersteld, heft maintenance mode op

2022-12-15

  • heruploadt (versies) bestanden gewijzigd sinds host backup, elk van kiara zelf waardoor kopie gesynchroniseerd met eigen apparaat volstond

Oorzaken

  • Waarom was de cloud tijdelijk niet bereikbaar?
    • Een update liep mis, waarna de cloud in maintenance mode is gezet wegens om het risico dat wijzigingen van na de backup niet makkelijk hersteld konden worden.
  • Waarom was deze update uitgevoerd?
    • Deze zou de gebruikersregistratie moeten helpen fixen, een voorwaarde om werkgroepen binnen de partij minder afhankelijk van IT te maken voor het aanmaken van gebruikers.
  • Waarom kozen we voor herstel van een backup?
    • Omdat er verschillende problemen voordeden leek fixen op korte termijn onhaalbaar, waardoor gebruikers impact zouden blijven ondervinden.
  • Waarom was het herstel gefocust op impact op gebruikers, i.p.v. volledig?
    • Volledig herstel van database wijzigingen na een update is non-triviaal i.v.m. wijzigingen in database formaat.
  • Waarom duurde dit incident zo lang?
    • Omdat we voor een backup terugvielen op de host.
  • Waarom moesten we terugvallen op een backup van de host?
    • We hadden geen eigen backup.
  • Waarom hadden we geen eigen backup?
    • Er was eerder een miscommunicatie over backups met een teamlid.
  • Waarom was er onvoldoende les getrokken uit het eerdere incident om een vergelijkbare update?
    • Lessen van eerder zijn veelal meegenomen, maar dit bleek desondanks onvoldoende.

Lessen

  • We kunnen met enige moeite tot op zekere hoogte database wijzigingen van na een backup bijvoegen na herstel van deze backup.
  • Bestanden herstellen is lastig al zijn deze desnoods te ontsleutelen.
  • Nextcloud updates vergen backups van vlak voor het moment van update.
  • Documentatie over het backup proces wat aangescherpt naar deze ervaring.
  • Om problemen te voorzien dienen wijzigingen vooraf getest te worden in een aparte omgeving.
  • We kunnen via nextcloud database tabel oc_activity nextcloud gebruik bijhouden om verwachtingen te krijgen over welke gebruikers impact ondervinden bij problemen, zodat we gericht actieve gebruikers op de hoogte kunnen stellen i.p.v. bericht te sturen aan iedereen waarvoor een account is aangemaakt.
  • Handig verwachtingen aan gebruikers communiceren binnen nextcloud lijkt bij een probleem een uitdaging, al valt b.w.v. hack de maintenance message te patchen via templates/update.user.php en l10n/nl.json in /var/www/nextcloud/core/ (voor talen en en nl).

Actiepunten

  • Als systeem beheerder wil ik backups op naam van bij1 - ticket
  • Overgaan op containers om extra variabelen bij het reproduceren van omgevingen weg te nemen. - ticket
  • Als devops wil ik staging omgevingen om updates in te testen voor uitrol naar productie - ticket
  • Applicaties draaien via Kubernetes om disks te poolen, zodat disk vergroten om een backup te kunnen bevatten niet langer hoeft te betekenen dat deze capaciteit permanent moet aanblijven. - ticket