Problem upgrading on the fly when ipv6 is used

Usu nginx-forum at nginx.us
Sat May 29 11:23:54 MSD 2010


Hi!

I've always upgraded nginx on the fly following this guide: http://wiki.nginx.org/NginxCommandLine without problems.
I recently added IPv6 support to nginx and now, when I need to upgrade it, it doesn't start the new instance when I send the USR2 signal to the master process, giving the following erros:
[code]
2010/05/29 09:05:52 [notice] 21060#0: using inherited sockets from "14;15;"
2010/05/29 09:05:52 [emerg] 21060#0: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
[emerg]: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
2010/05/29 09:05:52 [emerg] 21060#0: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
[emerg]: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
2010/05/29 09:05:52 [emerg] 21060#0: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
[emerg]: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
2010/05/29 09:05:52 [emerg] 21060#0: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
[emerg]: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
2010/05/29 09:05:52 [emerg] 21060#0: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
[emerg]: bind() to [2001:41d0:2:8673::1]:80 failed (98: Address already in use)
2010/05/29 09:05:52 [emerg] 21060#0: still could not bind()
[emerg]: still could not bind()
[/code]

I'm using nginx 0.8.37 and I was trying to upgrade to 0.8.38.
Here's an example of my nginx configuration regarding IPv6 (all the other vhost have the same one):

[code]
    server { # php/fastcgi
        listen [2001:41D0:2:8673::1];
        listen 80;
        server_name  img.italiansubs.net;
        access_log   logs/img.access.log  main;
        root         /var/www/img.italiansubs.net/public_html;


        location / {
            index    index.html index.htm index.php index.xml;
        }

        location /news2/data/ {
            expires 35d;
        }

        location ~ \.php$ {
            fastcgi_pass   unix:/tmp/php-fpm.sock;
#             fastcgi_pass   127.0.0.1:9000;
        }
    }

[/code]

If I manually restart nginx via init script it works, but of course all the open connections are dropped, which is something I would like to avoid.

Thanks a lot,
Andrea

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,91799,91799#msg-91799




More information about the nginx mailing list