On Wed, Jun 20, 2012 at 7:31 AM, Lauri Kasanen <[email protected]> wrote: > On Wed, 20 Jun 2012 07:27:38 -0600 > Eduardo Silva <[email protected]> wrote: > >> > After closing, we occasionally get a false write event on an >> > already-closed connection. Do not try to re-close in that case. >> >> When some event is triggered from epoll and the associated callback >> (event_write, event_read..etc) returns 0, means that the connection >> keeps alive, so it must return -1 so then it can invoke the >> event_close properly, the event_close is not just to close a file >> descriptor, also put aware everyone about that connection has been >> closed so an action can be taken. Remember that plugins depends of the >> events triggered so we cannot return '0' when a connection was close. >> >> Please explain the problem that you face in the CGI plugin when it returns >> -1. > > The connection is already closed via the event_close callback, that's why the > cs does not exist. After it's closed, sometimes epoll sends a false write > event. >
so do you refer to: when close(some_fd); is invoked, then epoll triggers the event_close callback due to a hangup ? > Now, without this patch, this means monkey tries to close fd, say, 19, which > is already closed. Fd 19 might now refer to a new file. Closing it will cause > instability and errors - some other thread has its fd closed from under it > when it tries to read or write to it. > > > It also prints out a epoll_ctl error message, because fd 19 has already been > removed from the epoll_fd. > > - Lauri -- Eduardo Silva http://edsiper.linuxchile.cl http://www.monkey-project.com _______________________________________________ Monkey mailing list [email protected] http://lists.monkey-project.com/listinfo/monkey
