Opened 5 years ago

Closed 5 years ago

#1821 closed defect (invalid)

Nginx 1.14.0 fails to start if ipv6 support on host is disabled

Reported by: bevand10@… Owned by:
Priority: minor Milestone:
Component: other Version: 1.17.x
Keywords: Cc:
uname -a: Linux bevand10-HP-EliteBook-840-G3 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.14.0 (Ubuntu)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-pTuC1b/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module

Description

# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

inet 192.168.249.1 netmask 255.255.255.0 broadcast 192.168.249.255
ether 02:42:19:ba:e6:23 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

docker_gwbridge: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.250.1 netmask 255.255.255.0 broadcast 192.168.250.255
ether 02:42:19:d7:3f:8e txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1033 bytes 172294 (172.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

ether c8:d3:ff:69:38:89 txqueuelen 1000 (Ethernet)
RX packets 1334863 bytes 1058768699 (1.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 380949 bytes 134078135 (134.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xe1200000-e1220000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 4019381 bytes 2054803911 (2.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4019381 bytes 2054803911 (2.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

veth3b18948: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

ether ba:7a:7f:04:bc:2d txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1033 bytes 172294 (172.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 10.56.110.15 netmask 255.255.252.0 broadcast 10.56.111.255
ether f0:d5:bf:01:b7:4c txqueuelen 1000 (Ethernet)
RX packets 17897545 bytes 13685388137 (13.6 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5316328 bytes 1206667801 (1.2 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
nginx: configuration file /etc/nginx/nginx.conf test failed

Fragment from /etc/nginx/sites-enabled/default

server {

listen 80 default_server;
listen [::]:80 default_server;

If I comment out the listen [::]:80 ipv6 directive, nginx starts successfully.

This appears to be a recent regression, as previously, the default presence of the listen ipv6 directive, and absence of ipv6 support on the host, would not result is a nginx start error.

Change History (2)

comment:1 by bevand10@…, 5 years ago

For info, this occurred during a today's Ubuntu 18.04 upgrade:

nginx/bionic-updates,bionic-updates 1.14.0-0ubuntu1.3 all [upgradable from: 1.14.0-0ubuntu1.2]
nginx-common/bionic-updates,bionic-updates 1.14.0-0ubuntu1.3 all [upgradable from: 1.14.0-0ubuntu1.2]
nginx-core/bionic-updates 1.14.0-0ubuntu1.3 amd64 [upgradable from: 1.14.0-0ubuntu1.2]

The running nginx instance was halted because of the defect. What should have been a seamless upgrade was service affecting.

comment:2 by Maxim Dounin, 5 years ago

Resolution: invalid
Status: newclosed

You may want to report this to maintainers of the package you are using - by default nginx does not listen on IPv6 addresses.

Note: See TracTickets for help on using tickets.