Welcome! Log In Create A New Profile

Advanced

Re: [PATCH] Check stale write events in ngx_epoll_module

Maxim Dounin
November 07, 2011 12:54PM
Hello!

On Mon, Nov 07, 2011 at 07:48:29PM +0800, agentzh wrote:

> Hello!
>
> We've run into an issue with stale write event in ngx_epoll_module.
> Here's a scenario for the issue:
>
> 1. epoll_wait returns a read event and a write event for a connection,
> 2. ngx_epoll_process_events checks if the read event is stale and sees
> it is not, then invoke the read event handler.
> 3. the read event handler closes the current connection and makes the
> write event not yet processed stale,
> 4. ngx_epoll_process_events blindly continues to run the write event
> handler even if the write event is already stale.
>
> I've already attached a patch for the nginx 1.0.9 core to fix this issue.
>
> Thanks!
> -agentzh
>
> --- nginx-1.0.9/src/event/modules/ngx_epoll_module.c 2011-09-30
> 22:12:53.000000000 +0800
> +++ nginx-1.0.9-patched/src/event/modules/ngx_epoll_module.c 2011-11-07
> 18:07:04.764111952 +0800
> @@ -681,6 +681,18 @@
>
> wev = c->write;
>
> + if (c->fd == -1 || wev->instance != instance) {
> +
> + /*
> + * the stale event from a file descriptor
> + * that was just closed in this iteration
> + */
> +
> + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
> + "epoll: stale event %p", c);
> + continue;
> + }
> +
> if ((revents & EPOLLOUT) && wev->active) {
>
> if (flags & NGX_POST_THREAD_EVENTS) {

Patch looks fine for me. Could you please provide some details
about user-visible effects observed if the problem occurs?

Maxim Dounin

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH] Check stale write events in ngx_epoll_module Attachments

agentzh 1980 November 07, 2011 06:50AM

Re: [PATCH] Check stale write events in ngx_epoll_module

Maxim Dounin 681 November 07, 2011 12:54PM

Re: [PATCH] Check stale write events in ngx_epoll_module

agentzh 713 November 07, 2011 07:42PM

Re: [PATCH] Check stale write events in ngx_epoll_module

Maxim Dounin 1398 November 22, 2011 11:54AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 238
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready