﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
1047	listening unix sockets not removed on graceful shutdown	drawks@…		"When running nginx with a listener on a unix socket:

{{{
listen unix:/var/run/nginx.sock;
}}}

The socket is correctly created when nginx starts, but is not removed when a graceful shutdown is requested via SIGQUIT signal. This results in subsequent attempts to start nginx to result in the following error:

{{{
bind() to unix:/var/run/nginx.sock failed (98: Address already in use)
}}}

Oddly enough, when nginx is stopped with a SIGTERM signal (""shut down quickly"" according to the manpage) the socket is removed.

The result of this is that additional effort must be made to cleanup the socket outside of the nginx process when using ""graceful shutdown."" As a side-effect init scripts provided by downstream distributions may fail to correctly handle restarts in some configurations.

It would seem, to me at least, that the ""graceful"" shutdown method should make a best attempt to cleanup all ephemeral resources used by the master and children processes; the ""shutdown quickly"" method perhaps not so much."	defect	closed	minor		other	1.10.x	duplicate			Linux kiryu 4.6.0-1-amd64 #1 SMP Debian 4.6.4-1 (2016-07-18) x86_64 GNU/Linux	"nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now' --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-ipv6 --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-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 --add-dynamic-module=/build/nginx-1.10.1/debian/modules/nginx-auth-pam --add-module=/build/nginx-1.10.1/debian/modules/nginx-dav-ext-module --add-module=/build/nginx-1.10.1/debian/modules/nginx-echo --add-module=/build/nginx-1.10.1/debian/modules/nginx-upstream-fair --add-module=/build/nginx-1.10.1/debian/modules/ngx_http_substitutions_filter_module"
