changeset 652:d9136cb50cd3 NGINX_1_1_10

nginx 1.1.10 *) Bugfix: a segmentation fault occured in a worker process if AIO was used on Linux; the bug had appeared in 1.1.9.
author Igor Sysoev <http://sysoev.ru>
date Wed, 30 Nov 2011 00:00:00 +0400
parents 583a3cd2773c
children 8c96af2112c1
files CHANGES CHANGES.ru src/core/nginx.h src/event/modules/ngx_epoll_module.c src/http/modules/perl/nginx.pm
diffstat 5 files changed, 25 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,10 @@
 
+Changes with nginx 1.1.10                                        30 Nov 2011
+
+    *) Bugfix: a segmentation fault occured in a worker process if AIO was
+       used on Linux; the bug had appeared in 1.1.9.
+
+
 Changes with nginx 1.1.9                                         28 Nov 2011
 
     *) Change: now double quotes are encoded in an "echo" SSI-command
--- a/CHANGES.ru
+++ b/CHANGES.ru
@@ -1,4 +1,10 @@
 
+Изменения в nginx 1.1.10                                          30.11.2011
+
+    *) Исправление: при использовании AIO на Linux в рабочем процессе
+       происходил segmentation fault; ошибка появилась в 1.1.9.
+
+
 Изменения в nginx 1.1.9                                           28.11.2011
 
     *) Изменение: теперь двойные кавычки экранируется при выводе
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,8 +8,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1001009
-#define NGINX_VERSION      "1.1.9"
+#define nginx_version      1001010
+#define NGINX_VERSION      "1.1.10"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #define NGINX_VAR          "NGINX"
--- a/src/event/modules/ngx_epoll_module.c
+++ b/src/event/modules/ngx_epoll_module.c
@@ -681,19 +681,19 @@ ngx_epoll_process_events(ngx_cycle_t *cy
 
         wev = c->write;
 
-        if (c->fd == -1 || wev->instance != instance) {
+        if ((revents & EPOLLOUT) && wev->active) {
 
-            /*
-             * the stale event from a file descriptor
-             * that was just closed in this iteration
-             */
+            if (c->fd == -1 || wev->instance != instance) {
 
-            ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                           "epoll: stale event %p", c);
-            continue;
-        }
+                /*
+                 * the stale event from a file descriptor
+                 * that was just closed in this iteration
+                 */
 
-        if ((revents & EPOLLOUT) && wev->active) {
+                ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+                               "epoll: stale event %p", c);
+                continue;
+            }
 
             if (flags & NGX_POST_THREAD_EVENTS) {
                 wev->posted_ready = 1;
--- a/src/http/modules/perl/nginx.pm
+++ b/src/http/modules/perl/nginx.pm
@@ -48,7 +48,7 @@ our @EXPORT = qw(
     HTTP_INSUFFICIENT_STORAGE
 );
 
-our $VERSION = '1.1.9';
+our $VERSION = '1.1.10';
 
 require XSLoader;
 XSLoader::load('nginx', $VERSION);