System Outage

Incident Report for ioki

Postmortem

DEUTSCH:
Es kam heute von 13:15 bis 13:38 MESZ zu einem Ausfall unserer Applikationsserver. Der Vorfall wurde vollständig behoben und die zugrunde liegenden Ursachen wurden vollständig aufgeklärt. Wir entschuldigen uns für die Unannehmlichkeiten.

Im Folgenden finden Sie eine technische Zusammenfassung des Vorfalls:
Nach einem regulären Code-Update, welches wir normalerweise mehrmals pro Woche ausführen, reagierten unsere Server-Systeme nicht mehr. Das Problem war ein Programmierfehler im High-Level-Anwendungscode. Der Code bestand alle automatisierten Tests, zwei Reviews und einen Testlauf auf unseren Demosystemen. Dennoch gab es einen Fehler, der nur in Kombination mit speziellen Datensätzen auf unserem Produktionssystem auftrat.

Der betreffende Code wurde am 22. Mai 2023 gegen 13:10 Uhr ausgerollt. Zunächst verlief alles normal, aber als sich mehr und mehr Benutzer über die Passagier-App anmeldeten, wurde durch den Programmierfehler große Mengen an Daten in den Arbeitsspeicher geladen und den Anwendungsservern ging der Speicher aus. Die eigentliche Ursache war also ein Software Bug, der unentdeckt ausgerollt wurde.

Unsere Warnsysteme informierten uns einige Minuten später und das ioki-Plattformteam sowie das ioki-SRE-Team arbeiteten daraufhin gemeinsam daran, das Problem zu finden und den Code auf eine stabile Version zurückzusetzen. Dieser Vorgang dauerte allerdings länger als erwartet; es war nicht sofort möglich alle Server neu zu starten, da die betroffenen Maschinen nicht reagierten. Einige Kunden waren von der gesamten Ausfallzeit betroffen, die zwischen 13:15 und 13:38 Uhr anhielt.

Der Fehler selbst wurde relativ schnell behoben, dennoch entschuldigen wir uns für die unnötig lange Ausfallzeit. Unsere Teams werden sich in Zukunft verstärkt darum bemühen, Lösungen für die schnelle Wiederherstellung eines nicht reagierenden Systems zu finden.

++++

ENGLISH:
We had an outage today from 13:15 to 13:38 CEST. The incident was fully resolved, and the underlying mechanisms got uncovered. We apologize for the inconvenience.

What follows is a technical summary of the incident:
After a regular code deploy, which we usually perform multiple times each week, this time the system became unresponsive. The issue was a coding error in the high level application code. The code passed all automated tests and two reviews and a test run on our demo systems. Still there was a bug in there, which would only surface with a special dataset found on our production systems. So the actual cause was a software bug.

The code in question got deployed May 22nd 2023 at around 13:10. At first all went well, but as more and more users logged into the passenger app, the backend data bootstrap code would load large numbers of data and eventually the application servers ran out of memory.

Our alerting systems informed us a few minutes later and the ioki application team as well as the ioki SRE team collaboratively worked on finding the problem and resetting the code into a stable version. It took us longer than expected to restart all the servers, because of the unresponsiveness of the affected machines. Some customers were struck by the full length of the downtime, which was 13:15 to 13:38.

The error itself was fixed rather fast, still we apologize for the unneccessary long downtime. Our teams will put extra effort on finding solutions for recovering an unresponsive systems fast in the future.

Posted May 22, 2023 - 21:15 CEST

Resolved

DEUTSCH:
Es kam heute von 13:15 bis 13:38 MESZ zu einem Ausfall unserer Applikationsserver. Der Vorfall wurde vollständig behoben und die zugrunde liegenden Ursachen wurden vollständig aufgeklärt. Wir entschuldigen uns für die Unannehmlichkeiten.

Im Folgenden finden Sie eine technische Zusammenfassung des Vorfalls:
Nach einem regulären Code-Update, welches wir normalerweise mehrmals pro Woche ausführen, reagierten unsere Server-Systeme nicht mehr. Das Problem war ein Programmierfehler im High-Level-Anwendungscode. Der Code bestand alle automatisierten Tests, zwei Reviews und einen Testlauf auf unseren Demosystemen. Dennoch gab es einen Fehler, der nur in Kombination mit speziellen Datensätzen auf unserem Produktionssystem auftrat.

Der betreffende Code wurde am 22. Mai 2023 gegen 13:10 Uhr ausgerollt. Zunächst verlief alles normal, aber als sich mehr und mehr Benutzer über die Passagier-App anmeldeten, wurde durch den Programmierfehler große Mengen an Daten in den Arbeitsspeicher geladen und den Anwendungsservern ging der Speicher aus. Die eigentliche Ursache war also ein Software Bug, der unentdeckt ausgerollt wurde.

Unsere Warnsysteme informierten uns einige Minuten später und das ioki-Plattformteam sowie das ioki-SRE-Team arbeiteten daraufhin gemeinsam daran, das Problem zu finden und den Code auf eine stabile Version zurückzusetzen. Dieser Vorgang dauerte allerdings länger als erwartet; es war nicht sofort möglich alle Server neu zu starten, da die betroffenen Maschinen nicht reagierten. Einige Kunden waren von der gesamten Ausfallzeit betroffen, die zwischen 13:15 und 13:38 Uhr anhielt.

Der Fehler selbst wurde relativ schnell behoben, dennoch entschuldigen wir uns für die unnötig lange Ausfallzeit. Unsere Teams werden sich in Zukunft verstärkt darum bemühen, Lösungen für die schnelle Wiederherstellung eines nicht reagierenden Systems zu finden.

++++

ENGLISH:
We had an outage today from 13:15 to 13:38 CEST. The incident was fully resolved, and the underlying mechanisms got uncovered. We apologize for the inconvenience.

What follows is a technical summary of the incident:
After a regular code deploy, which we usually perform multiple times each week, this time the system became unresponsive. The issue was a coding error in the high level application code. The code passed all automated tests and two reviews and a test run on our demo systems. Still there was a bug in there, which would only surface with a special dataset found on our production systems. So the actual cause was a software bug.

The code in question got deployed May 22nd 2023 at around 13:10. At first all went well, but as more and more users logged into the passenger app, the backend data bootstrap code would load large numbers of data and eventually the application servers ran out of memory.

Our alerting systems informed us a few minutes later and the ioki application team as well as the ioki SRE team collaboratively worked on finding the problem and resetting the code into a stable version. It took us longer than expected to restart all the servers, because of the unresponsiveness of the affected machines. Some customers were struck by the full length of the downtime, which was 13:15 to 13:38.

The error itself was fixed rather fast, still we apologize for the unneccessary long downtime. Our teams will put extra effort on finding solutions for recovering an unresponsive systems fast in the future.
Posted May 22, 2023 - 16:55 CEST

Update

We had an outage from 13:15 to 13:38 - we have restarted the unresponsive application servers and our system is operational again. We will investigate what was causing the issues.
Posted May 22, 2023 - 13:44 CEST

Investigating

Since 13:15 our Services have an outage - both the Web UI as well as our APIs are not reachable. All hands are on deck our engineers are investigating.
Posted May 22, 2023 - 13:35 CEST
This incident affected: ioki platform (Backend Passenger API, Backend Driver API).