Skrivefeil tok ned Azure i 10 timer

Skulle bare fikse noe i koden, endte opp med å slette hele servere i stedet for database-snapshots.

En liten skrivefeil førte til at Azure DevOps var nede i over ti timer. 📸: Kurt Lekanger
En liten skrivefeil førte til at Azure DevOps var nede i over ti timer. 📸: Kurt Lekanger Vis mer

Hvis du har en dårlig dag på jobben, kan du trøste deg med at det alltid er noen som har det verre:

Onsdag forrige uke var Microsoft Azure DevOps i en region i Brasil nede i rundt ti timer – alt på grunn av en banal skrivefeil som hadde sneket seg inn i forbindelse med en oppdatering, skriver The Register.

Slettet servere

Eric Mattingly i Microsoft har publisert en forklaring på hva som skjedde.

Ifølge Mattingly tar Microsofts Azure DevOps-utviklere noen ganger "snapshots" av produksjonsdatabaser for eksempel for å finne ut av problemer som er rapportert inn til dem, eller når de jobber med å forbedre ytelsen.

Alle disse database-snapshotene blir automatisk slettet etter en viss tid, ved hjelp av en bakgrunnsjobb som kjører hver dag.

«Gjemt inne i denne pull requesten var det en fatal skrivefeil.»

Utviklerne gjennomførte nylig en sprint der de oppgraderte kodebasen for å bytte ut "deprecatede" Microsoft.Azure.Managment.*-pakker med Azure.ResourceManager.* NuGet-pakker. Oppgraderingen førte til en stor pull request med endringer som byttet ut API-kall i de gamle pakkene med riktige API-kall for de nye pakkene.

Gjemt inne i denne pull requesten var det en fatal skrivefeil: I stedet for å slette en bestemt Azure SQL-database, så slettet API-kallet hele Azure SQL-serveren som inneholdt databasen.

For dårlig testing

Microsoft har tester som normalt skal fange opp denne typen feil. Men ifølge Mattingly kjører den berørte koden i ganske sjeldne tilfeller, noe som ikke var godt dekket av testene de hadde.

Feilen er nå rettet, og Mattingly sier de har fått på plass mekanismer som skal hindre at denne typen sletting skjer i fremtiden.

I tillegg har de laget en ny test som skal dekke det aktuelle scenarioet.

– Vi beklager til alle kunder som ble berørt av nedetiden, skriver Mattingly.