]> git.kaiwu.me - nginx.git/commitdiff
Fixed failure to start cache manager and cache loader processes
authorIgor Sysoev <igor@sysoev.ru>
Tue, 20 Nov 2012 13:37:55 +0000 (13:37 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 20 Nov 2012 13:37:55 +0000 (13:37 +0000)
if there were more than 512 listening sockets in configuration.

src/core/ngx_connection.c
src/os/unix/ngx_process_cycle.c

index 660e0af4ad506604797d3f2a9efa42e7ba394f83..c818114dfebd30a5fd071906e64a5f04f27c4015 100644 (file)
@@ -749,6 +749,8 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
 
         ls[i].fd = (ngx_socket_t) -1;
     }
+
+    cycle->listening.nelts = 0;
 }
 
 
index acafb7f6f3e187e6f0a65ed3062dc0642795fbc4..c9b0266ed2d190254df8479a6c7e3848dc3cdf5d 100644 (file)
@@ -1296,14 +1296,19 @@ ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data)
     void         *ident[4];
     ngx_event_t   ev;
 
-    cycle->connection_n = 512;
-
+    /*
+     * Set correct process type since closing listening Unix domain socket
+     * in a master process also removes the Unix domain socket file.
+     */
     ngx_process = NGX_PROCESS_HELPER;
 
-    ngx_worker_process_init(cycle, -1);
-
     ngx_close_listening_sockets(cycle);
 
+    /* Set a moderate number of connections for a helper process. */
+    cycle->connection_n = 512;
+
+    ngx_worker_process_init(cycle, -1);
+
     ngx_memzero(&ev, sizeof(ngx_event_t));
     ev.handler = ctx->handler;
     ev.data = ident;