Cloudflare paralyse son propre tableau de bord à cause d’une erreur de programmation dans React

Cloudflare

À cause d’une erreur de programmation, le tableau de bord de Cloudflare a été hors ligne pendant plus d’une heure.

Cloudflare a confirmé dans un blog qu’à cause d’une erreur de programmation, son tableau de bord a été affecté. L’incident a duré plus d’une heure et a touché à la fois le tableau de bord et plusieurs API. Selon le VP Engineering Tom Lianza, la panne a été causée par un hook useEffect de React qui appelait constamment l’API Tenant Service. Celle-ci s’est retrouvée surchargée et a planté.

Erreur dans le code

À cause d’une erreur dans le morceau de code, le hook useEffect, de la bibliothèque JavaScript React, un objet était recréé à chaque fois dans le tableau des dépendances. React pensait donc à chaque fois que quelque chose avait changé, et l’API était rappelée à chaque fois. Cela n’aurait dû se produire qu’une seule fois, mais à cause des centaines de requêtes supplémentaires, l’API s’est retrouvée surchargée et inaccessible.

Le hook React reste une source d’erreurs

Le hook useEffect est une fonction puissante dans React, mais cause souvent des erreurs et des problèmes de performance en cas de mauvaise utilisation. La documentation React avertit explicitement d’utiliser le hook uniquement si c’est vraiment nécessaire, et de maintenir les dépendances stables.

Cloudflare a augmenté la capacité du Tenant Service et ajouté une meilleure surveillance. Les appels API depuis le tableau de bord reçoivent également désormais des informations supplémentaires pour distinguer plus rapidement les nouvelles requêtes des répétitions. Cloudflare souhaite ainsi prévenir des problèmes similaires.

lire aussi

Cloudflare se penche sur l’avenir de l’IA : « Les ordinateurs ont appris à parler notre langue ».