How we found a bug in the hyper HTTP library
Nhóm Cloudflare Images phát hiện lỗi điều kiện chạy (race condition) trong thư viện hyper HTTP (phiên bản 0.14–1.8) khi chuyển đổi sang sử dụng Unix sockets, khiến dữ liệu ảnh lớn bị cắt xén ngẫu nhiên do vòng lặp xử lý không chờ Poll::Pending từ poll_flush. Lỗi chỉ xuất hiện trong môi trường sản xuất với tải cao, không thể tái hiện bằng curl hay thử nghiệm cục bộ. Nhóm đã khắc phục bằng cách bổ sung 4 dòng lệnh vào poll_shutdown để đảm bảo dữ liệu được ghi hết trước khi đóng kết nối.
Lập trình viên cần đọc bài này để hiểu cách một lỗi race condition trong thư viện HTTP phổ biến (hyper) có thể gây ra vấn đề nghiêm trọng trong ứng dụng thực tế, đặc biệt khi kết hợp với các điều kiện concurrency và giao thức socket, và cách team phát hiện, debug và fix bằng cách quan sát syscall thực tế.