Сбой Google Cloud из-за пустого поля. Три часа.
Строка политики с несколькими пустыми полями приводит к ошибке нулевого указателя, и Google Cloud одновременно выходит из строя во всех регионах — затем Cloudflare также падает.
Строка политики с несколькими пустыми полями приводит к ошибке нулевого указателя, и Google Cloud одновременно выходит из строя во всех регионах — затем Cloudflare также падает. 12 июня 2025 года, 17:49 UTC: Service Control, бинарный файл, который одобряет каждый запрос API Google Cloud, считывает изменение политики квот с «непреднамеренными пустыми полями», попадает в путь кода, отправленный двумя неделями ранее без проверки на NULL и без флага функции, и переходит в цикл сбоев в каждом регионе — строка была глобально реплицирована за считанные секунды. Внешние API возвращают 503 в течение трех часов; us-central1 занимает 2 часа 40 минут, потому что перезапускающиеся задачи одновременно обращаются к одной и той же таблице Spanner без рандомизированной задержки. Через три минуты после сбоя Google, Workers KV от Cloudflare — чей источник истины находится на «стороннем облачном провайдере» — теряет 90 % запросов, и Access, WARP, Workers AI, Pages, Stream и Turnstile выходят из строя вместе с ним на 2 часа 28 минут. Страница состояния Google публикует свое первое обновление на час позже, потому что она работает на Google Cloud.
Читать письменное издание (на английском) ↗
Что освещается в этом видео
- Пустое поле, нулевой указатель, каждый регион
- Хронология: 29 мая → 17:45 → цикл сбоев → красная кнопка → 17:52 Cloudflare
- us-central1: эффект стада
- Механизм: проверка в пути запроса, глобальная репликация, один поставщик
- git blame — разделение
Переведенная стенограмма
Переведено с оригинального английского повествования. Доступные аудио и субтитры контролируются YouTube.
Пустое поле, нулевой указатель, каждый регион
0:00 Строка политики с пустыми полями вызывает нулевой указатель, и Google Cloud падает в каждом регионе одновременно — и Cloudflare падает вместе с ним, затем называет Google «сторонним провайдером». 12 июня 2025 года, 17:49 UTC. Отчет Google: Service Control, бинарный файл, который одобряет каждый запрос API, в цикле сбоев в течение трех часов. Cloudflare, в тот же вечер: Workers KV, девяносто процентов сбоев, два часа двадцать восемь.
0:23 Как это произошло, почему одно пустое поле стало глобальным за секунды, и кто виноват. Это The Daily Diff, постмортем. 29 мая. Service Control получает новую проверку квоты, развернутую по регионам с
Хронология: 29 мая → 17:45 → цикл сбоев → красная кнопка → 17:52 Cloudflare
0:35 красной кнопкой — но новый путь кода никогда не запускается во время развертывания; ничто не вызывает его еще. Нет проверки на NULL. Нет флага функции. 17:45. Изменение политики с пустыми полями попадает в таблицу Spanner. Квота глобальна, поэтому строка реплицируется везде за считанные секунды. Каждый бинарный файл Service Control считывает ее, сталкивается с нулевым указателем, падает, перезапускается, считывает ее снова. Каждый вызов API: 503.
0:55 Google работает быстро: устранение в течение двух минут, корневая причина в течение десяти. Красная кнопка выключена через сорок, и небольшие регионы восстанавливаются первыми. Страница состояния публикует свое первое обновление через час, потому что она работает на Google Cloud. 17:52. Команда WARP Cloudflare видит, что новые устройства не регистрируются. Workers KV, хранилище, которое половина Cloudflare использует для конфигурации и идентификации, находится в стороннем облаке. Access не удается выполнить каждый вход — по замыслу, он завершается сбоем.
1:20 Workers AI терпит неудачу при каждом выводе. 19:11, Гергели Орош: два независимых облака упали одновременно, никогда раньше не видел. 19:32, поддержка Google сообщает пользователю, что известных сбоев нет — попробуйте очистить ваши куки. Все остальные восстанавливаются к 19:48.
us-central1: эффект стада
1:34 us-central1 нет: перезапускающиеся задачи одновременно обращаются к одной и той же таблице Spanner, без рандомизированной задержки, поэтому Google вручную регулирует их. Два часа сорок. Первое: проверка политики находится внутри пути запроса; когда проверка умирает,
Механизм: проверка в пути запроса, глобальная репликация, один поставщик
1:46 API умирает. Второе: данные квоты становятся глобальными без промежуточной среды; плохая строка — это глобальная строка. Третье: Cloudflare знал. Workers KV был в процессе миграции на свой собственный R2, до одного провайдера — постмортем называет это пробелом в покрытии.
git blame — разделение
2:00 git blame. Google, пятьдесят пять процентов: нет проверки на NULL, нет флага функции, нет задержки — их отчет говорит, что флаг поймал бы это на стадии тестирования. Глобальная репликация, двадцать: одна строка, каждый регион, секунды. Cloudflare, двадцать: половина линейки продуктов на хранилище одного поставщика, и постмортем, который никогда не называет Google. Страница состояния, пять, за то, что она живет на том, о чем сообщает. Радиус поражения: семьдесят продуктов Google Cloud, десять приложений Workspace,
Радиус поражения
2:23 каждый регион. Три часа. В Cloudflare: Access, WARP, Workers AI, Pages, Stream — два с половиной. Hacker News, четырнадцатьсот баллов; топ-комментарий: страница состояния зеленая.
Вердикт + линия понедельника
2:33 Вердикт, постмортем: SHIP IT. Оба постмортема выходят в течение тридцати часов, оба винят себя, и исправления Google конкретны: "fail open", флаги по умолчанию выключены, экспоненциальная задержка. Линия понедельника: новый код за флагом, который отключен, и проверка на NULL там, где поступают данные. Присылайте мне инцидент, о котором вам до сих пор не разрешено говорить, в комментариях или на "the daily diff dot dev". И это The Daily Diff на сегодня.
2:53 Я Нико из Axrisi. Ответственно объединяйте (Merge responsibly).
Источники
- Google Cloud Service Health, Incident Report (Jun 13, 2025) + Mini Incident Report (Jun 12)status.cloud.google.com
- Cloudflare, "Cloudflare service outage June 12, 2025" (Jun 12, 2025, 22:00 UTC)blog.cloudflare.com
- Cloudflare Status, "Broad Cloudflare service outages" (18:19–21:31 UTC)www.cloudflarestatus.com
- Gergely Orosz, 19:11 UTC, "Their infra is fully independent AFAIK"x.com
- @Google support, 19:32 UTC, "there aren't any known service disruptions"x.com
- Thomas Kurian (Google Cloud CEO), Jun 13 01:35 UTCx.com
- Hacker News, "GCP Outage" (1,468 points)news.ycombinator.com
- Hacker News, "Cloudflare was down" (341 points)news.ycombinator.com
- Hacker News, "Google Cloud Incident Report – 2025-06-13" (209 points)news.ycombinator.com



