libev epoll and EPOLLRDHUP

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

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

Warm regards,

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

On Thu, Jun 13, 2013 at 11:54:55AM +0530, "Chaliha, Sayan" <sayan.chaliha at> 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_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list