summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2012-12-10 17:46:51 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2012-12-10 17:46:51 +0000
commite3cf44789f2a6e256a596f187c6d4211859f1d73 (patch)
treea8a4bc3c2356a2ea3a40aec357b6dbecd663339a /src
parent72bba4144b29c22753fc7463088597b871c087fa (diff)
downloadnginx-e3cf44789f2a6e256a596f187c6d4211859f1d73.tar.gz
nginx-e3cf44789f2a6e256a596f187c6d4211859f1d73.tar.bz2
Merge of r4918: cache manager startup with many listen sockets.
Fixed failure to start cache manager and cache loader processes if there were more than 512 listening sockets in configuration.
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_connection.c2
-rw-r--r--src/os/unix/ngx_process_cycle.c13
2 files changed, 11 insertions, 4 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index ba1b3f9e2..3ba5e7682 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -749,6 +749,8 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
ls[i].fd = (ngx_socket_t) -1;
}
+
+ cycle->listening.nelts = 0;
}
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index acafb7f6f..c9b0266ed 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -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;