epoll_ctl failed (17: File exists)

Maxim Dounin mdounin at mdounin.ru
Mon Apr 12 02:41:13 MSD 2010


Hello!

On Sun, Apr 11, 2010 at 09:20:17PM +0200, Matthias-Christian Ott wrote:

> Hi,
> 
> it took a while to find the bug, but the patch is trivial:
> 
> --- src/core/ngx_cycle.c~	2009-10-26 17:22:24.000000000 +0100
> +++ src/core/ngx_cycle.c	2010-04-11 21:14:43.997932783 +0200
> @@ -847,7 +847,7 @@
>          sin61 = (struct sockaddr_in6 *) sa1;
>          sin62 = (struct sockaddr_in6 *) sa2;
>  
> -        if (sin61->sin6_port != sin61->sin6_port) {
> +        if (sin61->sin6_port != sin62->sin6_port) {
>              return NGX_DECLINED;
>          }
> 
> Without the patch reloading will fail, because nginx thinks the two IPv6
> addresses are the same regardless of the port.

Good catch, thanks.

Maxim Dounin



More information about the nginx-devel mailing list