[nginx] gRPC: WINDOW_UPDATE after END_STREAM handling (ticket #1797).

Ruslan Ermilov ru at nginx.com
Thu Apr 23 12:11:05 UTC 2020


details:   https://hg.nginx.org/nginx/rev/716eddd74bc2
branches:  
changeset: 7647:716eddd74bc2
user:      Ruslan Ermilov <ru at nginx.com>
date:      Thu Apr 23 15:10:26 2020 +0300
description:
gRPC: WINDOW_UPDATE after END_STREAM handling (ticket #1797).

As per https://tools.ietf.org/html/rfc7540#section-6.9,
WINDOW_UPDATE received after a frame with the END_STREAM flag
should be handled and not treated as an error.

diffstat:

 src/http/modules/ngx_http_grpc_module.c |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 2096b21fcd10 -r 716eddd74bc2 src/http/modules/ngx_http_grpc_module.c
--- a/src/http/modules/ngx_http_grpc_module.c	Thu Apr 23 15:10:24 2020 +0300
+++ b/src/http/modules/ngx_http_grpc_module.c	Thu Apr 23 15:10:26 2020 +0300
@@ -2091,7 +2091,8 @@ ngx_http_grpc_filter(void *data, ssize_t
             }
 
             if (ctx->stream_id && ctx->done
-                && ctx->type != NGX_HTTP_V2_RST_STREAM_FRAME)
+                && ctx->type != NGX_HTTP_V2_RST_STREAM_FRAME
+                && ctx->type != NGX_HTTP_V2_WINDOW_UPDATE_FRAME)
             {
                 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
                               "upstream sent frame for closed stream %ui",


More information about the nginx-devel mailing list