libev epoll and EPOLLRDHUP
Marc Lehmann
schmorp at schmorp.de
Thu Jun 13 12:55:23 CEST 2013
On Thu, Jun 13, 2013 at 11:54:55AM +0530, "Chaliha, Sayan" <sayan.chaliha at in.verizon.com> wrote:
> a. I have a transparent HTTP proxy server
> b. The proxy is heavily loaded with connections (around 3 Gbps of data)
> c. On any side of the proxy if a client closes a connection, I don't get a read (or write) event for the last connection that went down. That event comes only when a new connection is established. Off late testers are reporting that more than ten or eleven connection close events are being missed with epoll enabled.
That sounds a lot like a bug in your program (especially when you also see
corruption of the backend_fd already...), less like a bug in epoll, and
looks completely unrelated to EPOLLRDHUP.
If you have a testcase that exhibits the problem, or some strace (or
equivalent) output that shows that epoll doesn't generate EPOLLIN for a
closed connection, then you would have a case.
Until then, you'd probably be better off hunting bugs in your code, such
as closing the wrong fd, or blocking your process, or corrupting libev's
data structures or the like.
--
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / schmorp at schmorp.de
-=====/_/_//_/\_,_/ /_/\_\
More information about the libev
mailing list