diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2022-11-23 23:12:04 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2022-11-23 23:12:04 +0300 |
commit | 593bb543873ac57efade09dbcc2f93ab6b4d5ab0 (patch) | |
tree | 39e04716e86991e16eef7bdd98ea1822ebd9c2b4 | |
parent | 22223c75c9715e568f5710a8eed1fee9e7c2983f (diff) | |
download | nginx-593bb543873ac57efade09dbcc2f93ab6b4d5ab0.tar.gz nginx-593bb543873ac57efade09dbcc2f93ab6b4d5ab0.zip |
Disabled cloning of sockets without master process (ticket #2403).
Cloning of listening sockets for each worker process does not make sense
when working without master process, and causes some of the connections
not to be accepted if worker_processes is set to more than one and there
are listening sockets configured with the reuseport flag. Fix is to
disable cloning when master process is disabled.
-rw-r--r-- | src/event/ngx_event.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index 47229b507..77b07f6e1 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -416,6 +416,7 @@ ngx_event_init_conf(ngx_cycle_t *cycle, void *conf) { #if (NGX_HAVE_REUSEPORT) ngx_uint_t i; + ngx_core_conf_t *ccf; ngx_listening_t *ls; #endif @@ -442,7 +443,9 @@ ngx_event_init_conf(ngx_cycle_t *cycle, void *conf) #if (NGX_HAVE_REUSEPORT) - if (!ngx_test_config) { + ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); + + if (!ngx_test_config && ccf->master) { ls = cycle->listening.elts; for (i = 0; i < cycle->listening.nelts; i++) { |