We released nghttp2 v0.7.13.
This release fixes the bug that promised stream was reset if
NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE was returned from
nghttp2_on_header_callback for PUSH_PROMISE. Instead, associated
stream was reset.
nghttp2_on_begin_headers_callback now accepts
NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE as return code just like
h2load now effectively disables flow control by setting large window size. Previously h2load used default flow control window as described in HTTP/2 and SPDY specification. The window size is 64KiB, which is a bit small, and cannot utilize full server performance when response size is not too small. Basically, we do this kind of benchmarking test to measure server’s throughput, and optimal performance. Smaller window certainly degrades performance even in local testing because server is so fast that it has to wait for WINDOW_UPDATE from h2load. To make default behaviour suitable for peak performance test, we decided to disable flow control in h2load by setting large enough window size. Most users used h2load without -w or -W options, so they were implicitly throttled by flow control and the result was affected by that negatively. Now flow control is disabled by default, the result may improve depending on the implementations.
listen_and_serve function now takes
asynchronous parameter, and if it is true, the function returns
immediately and caller can gracefully shutdown server. This patch was
contributed from Xiaoguang Sun.