Как вчера один SELECT * FROM уронил половину интернета

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Вышел официальный разбор вчерашнего падения. Случилась классика. Все началось с рутинного обновления прав доступа в кластере ClickHouse. Инженеры хотели как лучше, а получилось как всегда... была задача разграничить доступы к распределенным таблицам, но в итоге один-единственный запрос к системной таблице system.columns начал возвращать дубликаты данных. Вместо того чтобы получить список входных параметров для системы защиты от ботов один раз, система получила их дважды (из основной базы и из внутреннего шарда r0).

В итоге конфигурационный файл для модуля Bot Management мгновенно распух в два раза. И тут в дело вступил жесткий хардкод. В коде прокси-сервера (написанном на Rust) стояло ограничение на 200 входных параметров, под которые заранее аллоцировалась память, видимо разрабы наивно полагали, что больше им никогда не понадобится. Когда прилетел файл большего размера, Rust сделал то, что он делает, когда встречает необработанное исключение... он запаниковал. В логах это выглядит как эпичное thread fl2_worker_thread panicked: called Result::unwrap() on an Err value. То есть разработчики просто не предусмотрели обработку ошибки переполнения и пустили весь прод под откос

Еще забавно, что в первые часы даже CEO Cloudflare был уверен, что их атакует какой-то невиданный ранее ботнет. Паники добавило то, что даже их внешняя статус-страница (которая хостится отдельно) начала отдавать ошибки, что выглядело как спланированная атака по всем фронтам. Инженеры несколько часов гонялись за призраками DDoS-атаки, пока не поняли, что их собственные сервера просто падают в kernel panic от своего же конфига.

Фиксили это дело в лучших традициях... вручную остановили раскатку обновления, подсунули старый (рабочий) файл конфигурации и начали перезагружать всю глобальную инфраструктуру. Полностью разгрести завалы и очереди сообщений удалось только к вечеру.

Cloudflare: «Helping to build a better Internet»


Источник: vk.com

Комментарии: