Welcome! Log In Create A New Profile

Advanced

Question about H2 WINDOW_UPDATE

Posted by mrpre 
Question about H2 WINDOW_UPDATE
February 24, 2019 11:54PM
I find an weird action of Nginx that it send WINDOWS_UPDATE frame by using a closed stream_id (see wp.pcap).
The client which using hyper(python) will throw exception.



Edited 1 time(s). Last edit at 02/24/2019 11:55PM by mrpre.
Attachments:
open | download - wp.pcap (1.6 KB)
Re: Question about H2 WINDOW_UPDATE
February 25, 2019 01:46AM
I find the root cause
(1) client :
send post with data(HEADER frame without END_STREAM flag and DATA frame with END_STREAM flag)
(2) server config
location {
return 200 "simple return";
}
(3) Once the Nginx receives the HEADER frame, it call http rewrite module to process request and then the call ngx_http_finalize_connection->ngx_http_v2_close_stream to close stream before DATA frame is processed.

Thus, for client it has send the END_STREAM flag but for server it hasn't received it. So function ngx_http_v2_send_window_update will be called in function ngx_http_v2_close_stream.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 100
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready