Welcome! Log In Create A New Profile

Advanced

[nginx] gRPC: limited allocations due to ping and settings frames.

Maxim Dounin
November 06, 2018 10:24AM
details: http://hg.nginx.org/nginx/rev/57463f4e2fcd
branches:
changeset: 7379:57463f4e2fcd
user: Maxim Dounin <mdounin@mdounin.ru>
date: Tue Nov 06 16:29:59 2018 +0300
description:
gRPC: limited allocations due to ping and settings frames.

diffstat:

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

diffs (39 lines):

diff --git a/src/http/modules/ngx_http_grpc_module.c b/src/http/modules/ngx_http_grpc_module.c
--- a/src/http/modules/ngx_http_grpc_module.c
+++ b/src/http/modules/ngx_http_grpc_module.c
@@ -78,6 +78,9 @@ typedef struct {

ngx_uint_t id;

+ ngx_uint_t pings;
+ ngx_uint_t settings;
+
ssize_t send_window;
size_t recv_window;

@@ -3584,6 +3587,12 @@ ngx_http_grpc_parse_settings(ngx_http_re
ctx->rest);
return NGX_ERROR;
}
+
+ if (ctx->free == NULL && ctx->settings++ > 1000) {
+ ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+ "upstream sent too many settings frames");
+ return NGX_ERROR;
+ }
}

for (p = b->pos; p < last; p++) {
@@ -3736,6 +3745,12 @@ ngx_http_grpc_parse_ping(ngx_http_reques
"upstream sent ping frame with ack flag");
return NGX_ERROR;
}
+
+ if (ctx->free == NULL && ctx->pings++ > 1000) {
+ ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+ "upstream sent too many ping frames");
+ return NGX_ERROR;
+ }
}

for (p = b->pos; p < last; p++) {
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] gRPC: limited allocations due to ping and settings frames.

Maxim Dounin 204 November 06, 2018 10:24AM



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

Online Users

Guests: 283
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