libev epoll and EPOLLRDHUP

Chaliha, Sayan sayan.chaliha at in.verizon.com
Thu Jun 13 13:19:33 CEST 2013


Thanks Marc. I'll dig into the code :) 

--
Warm regards,
Sayan.


-----Original Message-----
From: Marc Lehmann [mailto:schmorp at schmorp.de] 
Sent: Thursday, June 13, 2013 4:25 PM
To: Chaliha, Sayan
Cc: libev at lists.schmorp.de
Subject: Re: libev epoll and EPOLLRDHUP

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