details: https://hg.nginx.org/nginx/rev/45764bca69b0 branches: changeset: 7696:45764bca69b0 user: Maxim Dounin <[email protected]> date: Mon Aug 10 18:52:34 2020 +0300 description: SSL: disabled sending shutdown after ngx_http_test_reading().
Sending shutdown when ngx_http_test_reading() detects the connection is closed can result in "SSL_shutdown() failed (SSL: ... bad write retry)" critical log messages if there are blocked writes. Fix is to avoid sending shutdown via the c->ssl->no_send_shutdown flag, similarly to how it is done in ngx_http_keepalive_handler() for kqueue when pending EOF is detected. Reported by Jan PrachaĆ (http://mailman.nginx.org/pipermail/nginx-devel/2018-December/011702.html). diffstat: src/http/ngx_http_request.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diffs (16 lines): diff -r d57f15922ca3 -r 45764bca69b0 src/http/ngx_http_request.c --- a/src/http/ngx_http_request.c Mon Aug 10 18:52:20 2020 +0300 +++ b/src/http/ngx_http_request.c Mon Aug 10 18:52:34 2020 +0300 @@ -2992,6 +2992,12 @@ closed: rev->error = 1; } +#if (NGX_HTTP_SSL) + if (c->ssl) { + c->ssl->no_send_shutdown = 1; + } +#endif + ngx_log_error(NGX_LOG_INFO, c->log, err, "client prematurely closed connection"); _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
