aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/nginx.c8
-rw-r--r--src/event/modules/ngx_poll_module.c7
-rw-r--r--src/os/unix/ngx_posix_init.c11
3 files changed, 17 insertions, 9 deletions
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 21a22d0ba..43f40c58d 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -221,7 +221,7 @@ int main(int argc, char *const *argv, char **envp)
}
-/* TODO: broken single process */
+/* TODO: broken NGX_PROCESS_SINGLE */
static void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
{
@@ -634,6 +634,12 @@ static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
ngx_process_events(cycle->log);
+
+ if (ngx_reopen) {
+ ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "reopen logs");
+ ngx_reopen_files(cycle, -1);
+ ngx_reopen = 0;
+ }
}
}
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 8e3175a67..cba51e0e7 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -312,6 +312,13 @@ static int ngx_poll_process_events(ngx_log_t *log)
event_list[i].events, event_list[i].revents);
}
+ if (event_list[i].fd == -1) {
+
+ /* the disabled event, workaround for our possible bug */
+
+ continue;
+ }
+
c = &ngx_cycle->connections[event_list[i].fd];
if (c->fd == -1) {
diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c
index b76a9af75..4e7233919 100644
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -144,14 +144,9 @@ void ngx_signal_handler(int signo)
break;
case ngx_signal_value(NGX_REOPEN_SIGNAL):
- if (ngx_noaccept) {
- action = ", ignoring";
-
- } else {
- ngx_reopen = 1;
- action = ", reopen logs";
- break;
- }
+ ngx_reopen = 1;
+ action = ", reopen logs";
+ break;
case ngx_signal_value(NGX_CHANGEBIN_SIGNAL):
if ((ngx_inherited && getppid() > 1)