[PATCH] Disabled cloning of sockets without master process (ticket #2403)

Maxim Dounin mdounin at mdounin.ru
Fri Nov 18 13:55:15 UTC 2022


Hello!

Ping.

On Sun, Oct 30, 2022 at 05:41:38AM +0300, Maxim Dounin wrote:

> # HG changeset patch
> # User Maxim Dounin <mdounin at mdounin.ru>
> # Date 1667097682 -10800
> #      Sun Oct 30 05:41:22 2022 +0300
> # Node ID b73d95226c84b93e51f23f7b35782d98d3b516b9
> # Parent  55bcf8dc4ee35ccf40f5b8a7cffde63e7edb9494
> 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.
> 
> diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
> --- a/src/event/ngx_event.c
> +++ b/src/event/ngx_event.c
> @@ -416,6 +416,7 @@ ngx_event_init_conf(ngx_cycle_t *cycle, 
>  {
>  #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, 
>  
>  #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++) {
> 
> _______________________________________________
> nginx-devel mailing list -- nginx-devel at nginx.org
> To unsubscribe send an email to nginx-devel-leave at nginx.org

-- 
Maxim Dounin
http://mdounin.ru/



More information about the nginx-devel mailing list