Chúng tôi có lỗi lâu dài trong mã sản xuất của chúng tôi. Đây thực chất là một daemon dựa trên socket. Nó lắng nghe một loạt các trình biên dịch bằng cách chọn.Chọn EBADF: FD nào xấu?
Thỉnh thoảng (một lần một ngày hoặc lâu hơn), chọn sẽ trở lại với EBADF.
Tôi đã viết mã để tìm kiếm người gửi bản ghi xấu, vòng lặp đó trên từng fd và cuộc gọi chọn trên đó. Những cuộc gọi này không bao giờ trả lại EBADF. Tôi cũng đã thử fstat. Họ cũng không bao giờ trả lại EBADF.
Tôi cũng viết lại daemon để sử dụng cuộc thăm dò ý kiến. Điều này không giúp được gì.
Có ai có một số ý tưởng khác không? (ngoài tôi đã mắc phải một sai lầm ngớ ngẩn, đó là tất cả để dễ dàng để làm với chọn).