The "worker process is shutting down" is running all the time, How should I do?

Maxim Dounin mdounin at mdounin.ru
Mon Nov 13 13:52:54 UTC 2017


Hello!

On Fri, Nov 10, 2017 at 05:08:55PM +0800, Vis Lee wrote:

> Hi,
> 
> 
> The nginx is http proxy. when I use upgrade websocket and send heartbeat
> per 5s(client_body_timeout 6s;) the directives "worker_shutdown_timeout" is
> invalid, the "worker process is shutting down" produced by nginx -s reload
> is running all the time.
> 
> How should I do?

What do you mean by "the directives "worker_shutdown_timeout" is 
invalid"?  It does not work for you?

It looks like WebSocket proxying currently fails to handle 
worker_shutdown_timeout requests to close a connection, please try 
the following patch:

diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -3314,6 +3314,11 @@ ngx_http_upstream_process_upgraded(ngx_h
         return;
     }
 
+    if (upstream->close || downstream->close) {
+        ngx_http_upstream_finalize_request(r, u, NGX_ERROR);
+        return;
+    }
+
     if (from_upstream) {
         src = upstream;
         dst = downstream;

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx mailing list