Welcome! Log In Create A New Profile

Advanced

[nginx] SSL: disabled sending shutdown after ngx_http_test_reading().

Maxim Dounin
August 10, 2020 11:58AM
details: https://hg.nginx.org/nginx/rev/45764bca69b0
branches:
changeset: 7696:45764bca69b0
user: Maxim Dounin <mdounin@mdounin.ru>
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
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] SSL: disabled sending shutdown after ngx_http_test_reading().

Maxim Dounin 257 August 10, 2020 11:58AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 318
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready