From: Artem Boldariev Date: Wed, 12 May 2021 08:48:13 +0000 (+0300) Subject: Do not call nghttp2_session_terminate_session() in server-side code X-Git-Tag: v9.17.14~61^2~4 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=9155a8752811bed412a39b9ad5dfed4e872a6436;p=thirdparty%2Fbind9.git Do not call nghttp2_session_terminate_session() in server-side code We should not call nghttp2_session_terminate_session() in server-side code after all of the active HTTP/2 streams are processed. The underlying transport connection is expected to remain opened at least for some time in this case for new HTTP/2 requests to arrive. That is what flamethrower was expecting and it makes perfect sense from the HTTP/2 perspective. --- diff --git a/lib/isc/netmgr/http.c b/lib/isc/netmgr/http.c index b76c0b263ba..8ac2dd5ed8d 100644 --- a/lib/isc/netmgr/http.c +++ b/lib/isc/netmgr/http.c @@ -562,10 +562,6 @@ on_server_stream_close_callback(int32_t stream_id, int rv = 0; ISC_LIST_UNLINK(session->sstreams, &sock->h2, link); - if (ISC_LIST_EMPTY(session->sstreams)) { - rv = nghttp2_session_terminate_session(session->ngsession, - NGHTTP2_NO_ERROR); - } session->nsstreams--; isc__nmsocket_detach(&sock); return (rv);