Een softwarebug was de oorzaak dat de versleutelde e-maildienst ProtonMail en andere Proton-diensten vorige week maandag een uur lang onbereikbaar waren. Dat beschrijft de e-mailprovider in een analyse van de storing. Maandagochtend 1 februari had Proton onderhoud aan de databasehardware gepland staan, die ook succesvol werd uitgevoerd.
Voor het onderhoud werden de API-servers in een offline mode gezet. Elke server heeft een lokale cache met belangrijke configuratiegegevens. Deze data verloopt na drie a vier minuten, waarna de server een nieuwe configuratie ophaalt. Normaliter zijn de verlooptijden van de servers gespreid. Het inschakelen van de offline mode zorgde er echter voor dat de servers nagenoeg werden gesynchroniseerd.
Normaliter is de configuratiecache niet vereist wanneer de offline mode van de server wordt ingeschakeld. Een bug in de applicatiecode zorgde ervoor dat de requests van ingelogde gebruikers deze data ten onrechte toch nodig hadden, zelfs in de offline mode. Nadat de configuatiecache van elke server na een paar minuten was verlopen werden er requests naar de database gestuurd die nog steeds offline was.
Volgens ProtonMail duurt het afhandelen van requests normaliter milliseconden, maar bleven die nu tien seconden op een timeout wachten. Dit had een domino-effect waardoor het geheugen en de processors van de servers zo zwaar werden belast dat ze niet meer reageerden. Alleen door middel van een handmatige hard reboot waren de servers te herstellen. Dit nam echter enige tijd in beslag. Sommige van de servers die online kwamen hadden nog een verkeerde configuratie, wat inhield dat engineers elke server moest controleren voordat alle diensten konden worden hersteld.
ProtonMail stelt dat het incident heeft laten zien dat de infrastructuur en code uitgebreider moet worden getest voor uitzonderlijke omstandigheden, zoals wanneer bepaalde services offline zijn. Daarnaast onderstreept de storing de noodzaak om vaker te testen. De offline mode waar ProtonMail gebruik van maakte was in het verleden vaker getest, maar sinds de laatste test en het incident op 1 februari is het aantal gebruikers flink toegenomen. Volgens de mailprovider had er dan ook meer getest moeten worden. Verder gaat ProtonMail ervoor zorgen dat engineers tijdens onderhoud 'on-call' zijn mocht er iets onverwachts gebeuren.
Deze posting is gelocked. Reageren is niet meer mogelijk.