Lỗi hiếm trên bản build musl của ripgrep khiến tool bị crash khi quét codebase lớn

Lỗi hiếm trên bản build musl của ripgrep khiến tool bị crash khi quét codebase lớn

Nếu đang dùng file binary ripgrep dạng static link để quét các codebase cực lớn, lệnh tìm kiếm của bạn có thể đột ngột bị crash.

Một báo cáo trên repo của ripgrep cho thấy phiên bản 15.2.0 build bằng musl-libc thỉnh thoảng bị segfault khi duyệt thư mục với độ song song cao. Lỗi chạm phải một kiểm tra tính toàn vẹn (integrity assertion) bên trong trình cấp phát bộ nhớ của musl (mallocng) khi gọi opendir. Một lập trình viên đã tái hiện lỗi này trên OpenSUSE Tumbleweed khi chạy tìm kiếm liên tục qua 1,8 triệu file—khoảng 20GiB dữ liệu—trên hệ thống 24 nhân.

Vì sao lại quan trọng: File binary static build bằng musl là lựa chọn mặc định để đóng gói các công cụ CLI chạy linh hoạt trên mọi bản Linux. Việc hỏng bộ nhớ khi scan file đa luồng tải cao cho thấy sự tương tác giữa duyệt thư mục và các thư viện C tiêu chuẩn khác nhau có thể rắc rối thế nào ở quy mô lớn.

Cần biết thêm: Lỗi này ban đầu được phát hiện trong bản binary đi kèm với OpenAI Codex, nhưng nó cũng xuất hiện trên các bản phát hành x86_64-unknown-linux-musl chính thức. Các bản build GNU libc tiêu chuẩn không dính phải lỗi kiểm tra bộ nhớ này của musl.

Đến cả công cụ tìm kiếm file nhanh nhất giới tech đôi khi cũng vấp phải lỗi kiểm tra bộ nhớ từ thư viện C.