nginx reloading not working with IPv6 enabled

Bug #902223 reported by Alessio Caiazza on 2011-12-09
This bug affects 2 people
Affects Status Importance Assigned to Milestone
nginx (Ubuntu)

Bug Description

I've an ubuntu 10.04.3 server that can't reload nginix configuration due to the following bug.


The function ngx_cmp_sockaddr contained a typo which prevented nginx
from reloading, because nginx tried to add a socket multiple times
to an epoll descriptor.

--- 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;

If nginx listened on an IPv6 address on multiple ports (e.g. [::]:80
and [::]:443), the port is ignored and thus a socket is added multiple
times, because the sockets are kept an a linked list and once a match
is found the list is not searched any further and the first socket
gets always selected and added via epoll_ctl.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in nginx (Ubuntu):
status: New → Confirmed
tommyblue (tommaso-visconti) wrote :

I've the same issue.
The real problem is that the reload freezes nginx completely without any bad message!

Michele Bursi (ironmiky) wrote :

Same issue for me!

Changed in nginx (Ubuntu Lucid):
status: New → In Progress
assignee: nobody → Mahyuddin Susanto (udienz)
Changed in nginx (Ubuntu):
status: Confirmed → Fix Released
Mahyuddin Susanto (udienz) wrote :

Uploading to lucid-proposed, subscribing ubuntu-sru

Changed in nginx (Ubuntu Lucid):
status: In Progress → Fix Committed
Changed in nginx (Ubuntu Lucid):
assignee: Mahyuddin Susanto (udienz) → nobody

Hello Alessio, or anyone else affected,

Accepted nginx into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See for documentation how to enable and use -proposed. Thank you in advance!

tags: added: verification-needed
Alessio Caiazza (nolith) wrote :

I've installed it and tried to reload the configuration without any problem.

Now it's runing on my production server.

Thank you

Martin Pitt (pitti) on 2012-01-16
tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nginx - 0.7.65-1ubuntu2.2

nginx (0.7.65-1ubuntu2.2) lucid-proposed; urgency=low

  * debian/patches/LP-902223.patch: Patch to fix reloading
    IPv6 addresses, patch derived from Debian. (LP: #902223)
 -- Mahyuddin Susanto <email address hidden> Thu, 12 Jan 2012 14:45:20 +0700

Changed in nginx (Ubuntu Lucid):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers