Re: nginx не стартует если сокет существует

Konstantin Svist fry.kun на gmail.com
Чт Дек 10 03:58:30 MSK 2009


Сокеты не убираются при остановки:

src/core/ngx_connection.c:  ngx_close_listening_sockets() не запускает 
этот код:

    #if (NGX_HAVE_UNIX_DOMAIN)

             if (ls[i].sockaddr->sa_family == AF_UNIX
    && ngx_process <= NGX_PROCESS_MASTER
    && ngx_new_binary == 0)
             {
                 u_char *name = ls[i].addr_text.data + sizeof("unix:") - 1;

                 if (ngx_delete_file(name) == -1) {
                     ngx_log_error(NGX_LOG_EMERG, cycle->log,
    ngx_socket_errno,
                                   ngx_delete_file_n " %s failed", name);
                 }
             }

    #endif


хотя защищена от работников, к тому времени когда главный процесс 
запускает  ngx_close_listening_sockets(ngx_cycle_t *cycle),    
cycle->listening.nelts == 0




On 12/08/2009 06:18 PM, Konstantin Svist wrote:
> P.S. v 0.8.29
>
> также если kill -HUP <pid>
>
> 2009/12/08 18:13:30 [alert] 16692#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16692#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16691#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16691#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16693#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16693#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16694#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16694#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16695#0: epoll_ctl(1, 32667) failed (9: 
> Bad file descriptor)
> 2009/12/08 18:13:30 [alert] 16695#0: failed to register channel 
> handler while initializing push module worker (9: Bad file descriptor)
> 2009/12/08 18:13:30 [alert] 16696#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16696#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16697#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16697#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16698#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16698#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16700#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16700#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16699#0: epoll_ctl(1, 0) failed (1: 
> Operation not permitted)
> 2009/12/08 18:13:30 [alert] 16699#0: failed to register channel 
> handler while initializing push module worker (1: Operation not 
> permitted)
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16691 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16692 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16693 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16694 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16695 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16696 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16697 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16698 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16700 exited with 
> fatal code 2 and can not be respawn
> 2009/12/08 18:13:30 [alert] 16650#0: worker process 16699 exited with 
> fatal code 2 and can not be respawn
>
>
>
> On 12/08/2009 06:09 PM, Konstantin Svist wrote:
>> config:
>> server {
>>   listen unix:/tmp/nginx.sock;
>>  ...
>>
>>
>> kill -s QUIT <pid>
>> ./nginx -c ... не стартует
>>
>> в error.log:
>> 2009/12/08 18:04:05 [emerg] 13822#0: bind() to unix:/tmp/nginx.sock 
>> failed (98: Address already in use)
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091209/76bbece8/attachment.html>


Подробная информация о списке рассылки nginx-ru