Opened 3 years ago

Closed 3 years ago

#1247 closed defect (duplicate)

Nginx worker process closes connection and dies prematurely on http connections with keep_alive > 0

Reported by: thatoneemail@… Owned by:
Priority: major Milestone:
Component: nginx-core Version: 1.11.x
Keywords: worker keep_alive Cc: damian.curry@…
uname -a: Linux nginx-ingress-controller-1410115559-9v9v5 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.11.3
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2)
built with OpenSSL 1.0.2g-fips 1 Mar 2016
TLS SNI support enabled
configure arguments: --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 --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_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_sub_module --with-http_v2_module --with-http_spdy_module --with-stream --with-stream_ssl_module --with-threads --with-file-aio --without-mail_pop3_module --without-mail_smtp_module --without-mail_imap_module --without-http_uwsgi_module --without-http_scgi_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --add-module=/tmp/build/ngx_devel_kit-0.3.0 --add-module=/tmp/build/set-misc-nginx-module-0.31 --add-module=/tmp/build/nginx-module-vts-0.1.10 --add-module=/tmp/build/lua-nginx-module-0.10.6 --add-module=/tmp/build/headers-more-nginx-module-0.31 --add-module=/tmp/build/nginx-goodies-nginx-sticky-module-ng-08a395c66e42 --add-module=/tmp/build/nginx-http-auth-digest-cc61b4a11526637a5b363014947d3d4df91badb2 --add-module=/tmp/build/ngx_http_substitutions_filter_module-bc58cb11844bc42735bbaef7085ea86ace46d05b --add-module=/tmp/build/lua-upstream-nginx-module-0.06

Description

When clients send a request with a request header of "Connection: keep-alive" after/during a config refresh they get a TCP close instead of a response from the service nginx is forwarding to.

It seems that the worker decides it doesn't have any more work to do as soon as it sends it's most recent response back. Once it has no more work to do it closes the connection that is supposed to be "kept-alive".

I would think the nginx worker process should stay up as long as the keep_alive timeout has not been reached. This causes java clients to get an "end of file" while reading the response and results in a request error that potentially can not be retried (eg a POST).

Change History (2)

comment:1 by coryfklein@…, 3 years ago

Commenting here in hopes that TracTickets will notify me of updates on this issue.

Nevermind: found the "Watch This" link in the top right.

Last edited 3 years ago by coryfklein@… (previous) (diff)

comment:2 by Maxim Dounin, 3 years ago

Resolution: duplicate
Status: newclosed

Duplicate of #1022.

Note: See TracTickets for help on using tickets.