Messages in this thread | | | From | "Gilad Benjamini" <> | Subject | epoll and closed file descriptors | Date | Wed, 16 Sep 2009 16:22:55 -0700 |
| |
I am running repeatedly into a scenario where epoll notifies userland of events on a closed file descriptor. I am running a single thread application, on a single CPU machine so multiple threads isn't the issue.
A sample set of events that I have seen - File descriptor (13) for a socket is closed - epoll_wait returns with no events. - Several epoll related calls happen - More than 20 seconds after the "close", epoll_wait finds an event on fd 13 with EPOLLIN|EPOLLERR|EPOLLHUP. - epoll_wait continues to report this event
Running kernel 2.6.24. Some technical problems are preventing me from trying a newer kernel at the moment.
One more thing worth mentioning: the application uses libcurl, leading to a situation where the file is closed before the descriptor was removed from the epoll descriptor. The code should be able to handle that AFAIK.
Any ideas would be appreciated. Gilad
| |