Welcome! Log In Create A New Profile

Advanced

[nginx] svn commit: r5171 - trunk/src/event/modules

Anonymous User
April 12, 2013 11:04AM
Author: vbart
Date: 2013-04-12 15:02:33 +0000 (Fri, 12 Apr 2013)
New Revision: 5171
URL: http://trac.nginx.org/nginx/changeset/5171/nginx

Log:
Events: protection from stale events in eventport and devpoll.

Stale write event may happen if read and write events was reported both,
and processing of the read event closed descriptor.

In practice this might result in "sendfilev() failed (134: ..." or
"writev() failed (134: ..." errors when switching to next upstream server.

See report here:
http://mailman.nginx.org/pipermail/nginx/2013-April/038421.html


Modified:
trunk/src/event/modules/ngx_devpoll_module.c
trunk/src/event/modules/ngx_eventport_module.c

Modified: trunk/src/event/modules/ngx_devpoll_module.c
===================================================================
--- trunk/src/event/modules/ngx_devpoll_module.c 2013-04-11 13:49:13 UTC (rev 5170)
+++ trunk/src/event/modules/ngx_devpoll_module.c 2013-04-12 15:02:33 UTC (rev 5171)
@@ -343,7 +343,7 @@
ngx_fd_t fd;
ngx_err_t err;
ngx_int_t i;
- ngx_uint_t level;
+ ngx_uint_t level, instance;
ngx_event_t *rev, *wev, **queue;
ngx_connection_t *c;
struct pollfd pfd;
@@ -510,7 +510,13 @@
ngx_locked_post_event(rev, queue);

} else {
+ instance = rev->instance;
+
rev->handler(rev);
+
+ if (c->fd == -1 || wev->instance != instance) {
+ continue;
+ }
}
}


Modified: trunk/src/event/modules/ngx_eventport_module.c
===================================================================
--- trunk/src/event/modules/ngx_eventport_module.c 2013-04-11 13:49:13 UTC (rev 5170)
+++ trunk/src/event/modules/ngx_eventport_module.c 2013-04-12 15:02:33 UTC (rev 5171)
@@ -551,7 +551,7 @@
} else {
rev->handler(rev);

- if (ev->closed) {
+ if (ev->closed || ev->instance != instance) {
continue;
}
}

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

[nginx] svn commit: r5171 - trunk/src/event/modules

Anonymous User 794 April 12, 2013 11:04AM



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

Online Users

Guests: 275
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