Ремесло Jul 12, 2026 at 11:177В закладки

Cloudflare выявила ошибку конкурентности в hyper, crate HTTP/1, лежащей в основе экосистемы Rust: при определённых временных совпадениях крупный ответ мог быть неявно обрезан — 200 OK, тело обрезано. Исправление upstream.
Простыми словами. Гонка в hyper (HTTP/1-библиотеке, используемой всем Rust-стэком) могла, при неудачном тайминге, тихо обрезать большой HTTP-ответ — сервер возвращал 200 OK с неполным телом, не поднимая ошибку. Cloudflare нашла, исправила и выпустила патч.
InfoQ сообщает (2026-07-12), что команды Cloudflare задокументировали и исправили редкую гонку в HTTP/1-реализации hyper. Баг, существовавший несколько лет, срабатывал только при очень точных условиях тайминга: ответ обрезался по пути, но статус оставался 200 OK. Исправление уже в upstream, о публикации объявлено.
Три важных момента. Первое: в масштабах Cloudflare именно временные совпадения становятся багами — а не логика. Второе: тот факт, что Cloudflare смогла изолировать и исправить многолетний баг в столь центральной crate, напоминает, почему Rust занял место в сетевом слое — читаемость кода обеспечивает воспроизводимость бага. Третье: кроме оператора Cloudflare в таком масштабе, этого никто бы не заметил. Это и цена, и выгода от open source.
Версии hyper, встроенные в Axum, Actix, reqwest — распространение исправления займёт несколько недель в экосистеме.
И что? HTTP/1 никогда не завершён. Rust или нет, сервер, общающийся с Интернетом, — это поле невидимых гонок — и 200 OK не гарантирует, что тело дошло.
Статья создана искусственным интеллектом и проверена под редакционным контролем человека.
Войдите, чтобы участвовать в обсуждении.
Un bug comme ça montre qu'on peut rater des trucs même avec des tests. Content que Cloudflare l'ait repéré avant qu'il fasse plus de dégâts.
Est-ce que ce bug a pu toucher d'autres implémentations HTTP/1 ou c'est spécifique à hyper ?
Curieux, on se demande depuis combien de temps ce bug passait inaperçu.
Difficile à dire, mais des bugs comme ça, ça traîne souvent sans qu'on les remarque.
Un bug comme ça, ça rappelle l'importance des tests pour les systèmes critiques. Est-ce que ça peut nuire à la confiance dans Rust pour les applications sensibles ?
Super trouvaille ! Je me demande comment ça affecte la performance et la fiabilité en production.
Ce bug prouve qu'aucun langage n'est infaillible. J'espère que le correctif est bien testé.
J'espère que ce bug n'a pas trop impacté les utilisateurs de Cloudflare. Ça doit être important de savoir à quel point c'était grave.