Keepalived Connections Reset after reloading the configuration (HUP Signal)

Maxim Dounin mdounin at
Mon Oct 12 20:14:37 UTC 2020


On Thu, Oct 08, 2020 at 03:31:57AM -0400, tored wrote:

> Thanks Maxim to taking the time to respond.
> > This feature wasn't removed in 5e6142609e48, but rather it was 
> > changed how things work: instead of doing a full scan over all 
> > connections on each event loop iteration, nginx now does it only 
> > once, and also makes sure no new idle connections are added after 
> > the shutdown signal.
> > 
> I don't fully understand what happens to non-idle keep-alive connections
> after the shutdown signal is sent.
> If I understand correctly, non-idle keep-alive connections will continue to
> serve requests after a graceful shutdown, until they are terminated by
> "normal" events, such as:
> * connection is closed/terminated by the client
> * or by the server, e.g if (r->connection->requests >=
> clcf->keepalive_requests)
> * or if keepalive_timeout is meet
> * any other event that would close the connection during normal operation

No.  Connections won't be allowed to go into the keepalive state 
after a graceful shutdown was initiated, see the following check 
in the ngx_http_finalize_connection() function:

    if (!ngx_terminate
         && !ngx_exiting
         && r->keepalive
         && clcf->keepalive_timeout > 0)

That is, additional requests will be only processed on a 
connection if keepalive is enabled and nginx worker is not 
shutting down.  If nginx worker is shutting down, the connection 
will be closed.

Maxim Dounin

More information about the nginx mailing list