我们的生产代码中存在长期存在的错误.这本质上是一个基于套接字的守护进程.它使用select监听一堆文件描述符.
偶尔(每天一次左右),选择将返回EBADF.
我编写了代码来搜索错误的文件描述符,它遍历每个fd并调用select.这些调用永远不会返回EBADF.我也试过fstat.他们也永远不会回归EBADF.
我还重写了守护进程以使用民意调查.这没有用.
有没有人有其他想法?(除了我犯了一个愚蠢的错误,这一切都很容易与选择).
c linux
c ×1
linux ×1