+− THE DAILY DIFFdev & AI news
SHIP IT

Google Cloud s'est effondré sur un champ vide. Trois heures.

Une ligne de stratégie avec quelques champs vides rencontre un pointeur nul, et Google Cloud plante dans toutes les régions à la fois — puis Cloudflare tombe avec lui.

Une ligne de stratégie avec quelques champs vides rencontre un pointeur nul, et Google Cloud plante dans toutes les régions à la fois — puis Cloudflare tombe avec lui. 12 juin 2025, 17:49 UTC : Service Control, le binaire qui approuve chaque requête API de Google Cloud, lit un changement de politique de quota avec des « champs vides involontaires », rencontre un chemin de code livré deux semaines plus tôt sans vérification de nullité et sans drapeau de fonctionnalité, et entre dans une boucle de crash dans chaque région — la ligne s'était répliquée globalement en quelques secondes. Les API externes retournent 503 pendant trois heures ; us-central1 prend 2 h 40 min parce que les tâches de redémarrage s'emballent sur la même table Spanner sans temporisation aléatoire. Trois minutes après la panne de Google, Workers KV de Cloudflare — dont la source de vérité se trouve sur « un fournisseur de cloud tiers » — perd 90 % des requêtes, et Access, WARP, Workers AI, Pages, Stream et Turnstile tombent avec lui pendant 2 h 28 min. La page d'état de Google publie sa première mise à jour avec une heure de retard, car elle fonctionne sur Google Cloud.

Lire l'édition écrite (anglais) ↗

Ce que couvre cette vidéo

  • Un champ vide, un pointeur nul, chaque région
  • Chronologie : 29 mai → 17:45 → boucle de crash → bouton rouge → 17:52 Cloudflare
  • us-central1 : l'effet de troupeau
  • Mécanisme : vérification dans le chemin de la requête, réplication globale, un seul fournisseur
  • git blame — la séparation

Transcription traduite

Traduit de la narration originale en anglais. L'audio et les sous-titres disponibles sont gérés par YouTube.

Un champ vide, un pointeur nul, chaque région

0:00 Une ligne de politique avec des champs vides rencontre un pointeur nul, et Google Cloud plante dans chaque région à la fois — et Cloudflare tombe avec elle, puis appelle Google « un fournisseur tiers ». 12 juin 2025, 17:49 UTC. Rapport de Google : Service Control, le binaire qui approuve chaque requête API, dans une boucle de crash pendant trois heures. Celui de Cloudflare, le même soir : Workers KV, quatre-vingt-dix pour cent en échec, deux heures vingt-huit.

0:23 Comment c'est arrivé, pourquoi un champ vide est devenu global en quelques secondes, et qui est à blâmer. Ceci est The Daily Diff, post-mortem. 29 mai. Service Control reçoit une nouvelle vérification de quota, déployée région par région avec un

Chronologie : 29 mai → 17:45 → boucle de crash → bouton rouge → 17:52 Cloudflare

0:35 bouton rouge — mais le nouveau chemin de code ne s'exécute jamais pendant le déploiement ; rien ne le déclenche encore. Pas de vérification de nullité. Pas de drapeau de fonctionnalité. 17:45. Un changement de politique avec des champs vides atterrit dans la table Spanner. Le quota est global, donc la ligne se réplique partout en quelques secondes. Chaque binaire Service Control la lit, rencontre le pointeur nul, plante, redémarre, la lit à nouveau. Chaque appel API : 503.

0:55 Google est rapide : triage en deux minutes, cause racine en dix. Le bouton rouge est désactivé en quarante, et les petites régions récupèrent en premier. La page d'état publie sa première mise à jour une heure après, parce qu'elle fonctionne sur Google Cloud. 17:52. L'équipe WARP de Cloudflare voit de nouveaux appareils ne pas s'enregistrer. Workers KV, le magasin qu'une moitié de Cloudflare utilise pour la configuration et l'identité, vit sur un cloud tiers. Access échoue à chaque connexion — par conception, il échoue en mode fermé.

1:20 Workers AI échoue à chaque inférence. 19:11, Gergely Orosz : deux clouds indépendants en panne à la fois, jamais vu auparavant. 19:32, le support Google dit à un utilisateur qu'il n'y a pas de perturbations connues — essayez de vider vos cookies. Partout ailleurs, la récupération est terminée à 19:48.

us-central1 : l'effet de troupeau

1:34 us-central1 non : les tâches de redémarrage s'emballent sur la même table Spanner, pas de temporisation aléatoire, donc Google les limite manuellement. Deux heures quarante. Un : la vérification de politique se trouve dans le chemin de la requête ; lorsque la vérification échoue,

Mécanisme : vérification dans le chemin de la requête, réplication globale, un seul fournisseur

1:46 l'API échoue. Deux : les données de quota deviennent globales sans pré-production ; une mauvaise ligne est une ligne globale. Trois : Cloudflare savait. Workers KV était en pleine migration vers son propre R2, réduit à un seul fournisseur — le post-mortem l'appelle un manque de couverture.

git blame — la séparation

2:00 git blame. Google, cinquante-cinq pour cent : pas de vérification de nullité, pas de drapeau de fonctionnalité, pas de temporisation — leur rapport dit qu'un drapeau l'aurait détecté en pré-production. Réplication globale, vingt : une ligne, chaque région, secondes. Cloudflare, vingt : la moitié d'une gamme de produits sur le magasin d'un seul fournisseur, et un post-mortem qui ne mentionne jamais Google. La page d'état, cinq, pour vivre sur ce qu'elle rapporte. Rayon d'action : soixante-dix produits Google Cloud, dix applications Workspace,

Rayon d'action

2:23 chaque région. Trois heures. Chez Cloudflare : Access, WARP, Workers AI, Pages, Stream — deux heures et demie. Hacker News, mille quatre cents points ; commentaire principal : la page d'état est verte.

Verdict + la ligne du lundi

2:33 Verdict, post-mortem : SHIP IT. Les deux post-mortems arrivent dans les trente heures, les deux se blâment, et les correctifs de Google sont concrets : échec ouvert, drapeaux désactivés par défaut, temporisation exponentielle. La ligne du lundi : nouveau code derrière un drapeau désactivé, et une vérification de nullité là où les données arrivent. Envoyez-moi l'incident dont vous n'êtes toujours pas autorisé à parler, dans les commentaires, ou à the daily diff dot dev. Et c'est le diff pour aujourd'hui.

2:53 Je suis Niko d'Axrisi. Fusionnez de manière responsable.

Sources

  1. Google Cloud Service Health, Incident Report (Jun 13, 2025) + Mini Incident Report (Jun 12)status.cloud.google.com
  2. Cloudflare, "Cloudflare service outage June 12, 2025" (Jun 12, 2025, 22:00 UTC)blog.cloudflare.com
  3. Cloudflare Status, "Broad Cloudflare service outages" (18:19–21:31 UTC)www.cloudflarestatus.com
  4. Gergely Orosz, 19:11 UTC, "Their infra is fully independent AFAIK"x.com
  5. @Google support, 19:32 UTC, "there aren't any known service disruptions"x.com
  6. Thomas Kurian (Google Cloud CEO), Jun 13 01:35 UTCx.com
  7. Hacker News, "GCP Outage" (1,468 points)news.ycombinator.com
  8. Hacker News, "Cloudflare was down" (341 points)news.ycombinator.com
  9. Hacker News, "Google Cloud Incident Report – 2025-06-13" (209 points)news.ycombinator.com

Vidéos similaires