Door een programmeerfout was het dashboard van Cloudflare meer dan een uur offline.
Cloudflare heeft bevestigd in een blog dat door een programmeerfout zijn dashboard. Het incident duurde meer dan een uur en trof zowel het dashboard als meerdere API’s. Volgens VP Engineering Tom Lianza ontstond de storing door een React useEffect-hook dat constant de Tenant Service API aanriep. Die raakte overbelast en crashte.
Fout in de code
Door een fout in het stukje code, de useEffect-hook, van de JavaScript-bibliotheek React werd een object telkens opnieuw aangemaakt in de afhankelijkheidstabel. Hierdoor dacht React elke keer dat er iets veranderd was, en werd de API telkens opnieuw opgeroepen. Dat moest maar één keer moeten gebeuren, maar door de honderden extra aanvragen geraakte de API overbelast en onbereikbaar.
React-hook blijft bron van fouten
De useEffect-hook is een krachtige functie in React, maar veroorzaakt vaak fouten en prestatieproblemen bij verkeerd gebruik. React-documentatie waarschuwt expliciet om de hook alleen te gebruiken als het echt nodig is, en om afhankelijkheden stabiel te houden.
Cloudflare heeft de capaciteit van de Tenant Service vergroot en betere monitoring toegevoegd. Ook krijgen API-aanroepen vanuit het dashboard vanaf nu extra informatie om nieuwe verzoeken sneller te onderscheiden van herhalingen. Zo wil Cloudflare gelijkaardige problemen voorkomen.
lees ook
