Latest update - 7241
This commit is contained in:
@@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Ruslan Ermilov <ru@nginx.com>
|
||||||
|
# Date 1521484335 -10800
|
||||||
|
# Node ID 190591ab0d76cef420f666522a0b1ccd70d33e3f
|
||||||
|
# Parent 413189f03c8d13d0d20bd5e44fa0e48e693badef
|
||||||
|
HTTP/2: improved frame info debugging.
|
||||||
|
|
||||||
|
diff -r 413189f03c8d -r 190591ab0d76 src/http/v2/ngx_http_v2.c
|
||||||
|
--- a/src/http/v2/ngx_http_v2.c Mon Mar 19 16:42:56 2018 +0300
|
||||||
|
+++ b/src/http/v2/ngx_http_v2.c Mon Mar 19 21:32:15 2018 +0300
|
||||||
|
@@ -1990,6 +1990,9 @@
|
||||||
|
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
||||||
|
+ "http2 SETTINGS frame");
|
||||||
|
+
|
||||||
|
return ngx_http_v2_state_settings_params(h2c, pos, end);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2130,8 +2133,8 @@
|
||||||
|
return ngx_http_v2_state_save(h2c, pos, end, ngx_http_v2_state_ping);
|
||||||
|
}
|
||||||
|
|
||||||
|
- ngx_log_debug1(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
||||||
|
- "http2 PING frame, flags: %ud", h2c->state.flags);
|
||||||
|
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
||||||
|
+ "http2 PING frame");
|
||||||
|
|
||||||
|
if (h2c->state.flags & NGX_HTTP_V2_ACK_FLAG) {
|
||||||
|
return ngx_http_v2_state_skip(h2c, pos, end);
|
||||||
|
diff -r 413189f03c8d -r 190591ab0d76 src/http/v2/ngx_http_v2_filter_module.c
|
||||||
|
--- a/src/http/v2/ngx_http_v2_filter_module.c Mon Mar 19 16:42:56 2018 +0300
|
||||||
|
+++ b/src/http/v2/ngx_http_v2_filter_module.c Mon Mar 19 21:32:15 2018 +0300
|
||||||
|
@@ -1169,9 +1169,9 @@
|
||||||
|
cl->next = NULL;
|
||||||
|
frame->last = cl;
|
||||||
|
|
||||||
|
- ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
|
- "http2:%ui create HEADERS frame %p: len:%uz",
|
||||||
|
- stream->node->id, frame, frame->length);
|
||||||
|
+ ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
|
+ "http2:%ui create HEADERS frame %p: len:%uz fin:%ui",
|
||||||
|
+ stream->node->id, frame, frame->length, fin);
|
||||||
|
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -476,6 +476,7 @@ cat << END
|
|||||||
--without-http_fastcgi_module disable ngx_http_fastcgi_module
|
--without-http_fastcgi_module disable ngx_http_fastcgi_module
|
||||||
--without-http_uwsgi_module disable ngx_http_uwsgi_module
|
--without-http_uwsgi_module disable ngx_http_uwsgi_module
|
||||||
--without-http_scgi_module disable ngx_http_scgi_module
|
--without-http_scgi_module disable ngx_http_scgi_module
|
||||||
|
--without-http_grpc_module disable ngx_http_grpc_module
|
||||||
--without-http_memcached_module disable ngx_http_memcached_module
|
--without-http_memcached_module disable ngx_http_memcached_module
|
||||||
--without-http_limit_conn_module disable ngx_http_limit_conn_module
|
--without-http_limit_conn_module disable ngx_http_limit_conn_module
|
||||||
--without-http_limit_req_module disable ngx_http_limit_req_module
|
--without-http_limit_req_module disable ngx_http_limit_req_module
|
||||||
|
|||||||
@@ -2706,8 +2706,6 @@ ngx_http_fastcgi_create_loc_conf(ngx_conf_t *cf)
|
|||||||
* conf->upstream.cache_methods = 0;
|
* conf->upstream.cache_methods = 0;
|
||||||
* conf->upstream.temp_path = NULL;
|
* conf->upstream.temp_path = NULL;
|
||||||
* conf->upstream.hide_headers_hash = { NULL, 0 };
|
* conf->upstream.hide_headers_hash = { NULL, 0 };
|
||||||
* conf->upstream.uri = { 0, NULL };
|
|
||||||
* conf->upstream.location = NULL;
|
|
||||||
* conf->upstream.store_lengths = NULL;
|
* conf->upstream.store_lengths = NULL;
|
||||||
* conf->upstream.store_values = NULL;
|
* conf->upstream.store_values = NULL;
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -2953,7 +2953,7 @@ ngx_http_grpc_parse_fragment(ngx_http_request_t *r, ngx_http_grpc_ctx_t *ctx,
|
|||||||
ctx->name.data[ctx->name.len] = '\0';
|
ctx->name.data[ctx->name.len] = '\0';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ngx_memcpy(ctx->field_end, p, size);
|
ctx->field_end = ngx_cpymem(ctx->field_end, p, size);
|
||||||
ctx->name.data[ctx->name.len] = '\0';
|
ctx->name.data[ctx->name.len] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3062,7 +3062,7 @@ ngx_http_grpc_parse_fragment(ngx_http_request_t *r, ngx_http_grpc_ctx_t *ctx,
|
|||||||
ctx->value.data[ctx->value.len] = '\0';
|
ctx->value.data[ctx->value.len] = '\0';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ngx_memcpy(ctx->field_end, p, size);
|
ctx->field_end = ngx_cpymem(ctx->field_end, p, size);
|
||||||
ctx->value.data[ctx->value.len] = '\0';
|
ctx->value.data[ctx->value.len] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -592,8 +592,6 @@ ngx_http_memcached_create_loc_conf(ngx_conf_t *cf)
|
|||||||
* conf->upstream.bufs.num = 0;
|
* conf->upstream.bufs.num = 0;
|
||||||
* conf->upstream.next_upstream = 0;
|
* conf->upstream.next_upstream = 0;
|
||||||
* conf->upstream.temp_path = NULL;
|
* conf->upstream.temp_path = NULL;
|
||||||
* conf->upstream.uri = { 0, NULL };
|
|
||||||
* conf->upstream.location = NULL;
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
conf->upstream.local = NGX_CONF_UNSET_PTR;
|
conf->upstream.local = NGX_CONF_UNSET_PTR;
|
||||||
|
|||||||
@@ -2797,13 +2797,13 @@ ngx_http_proxy_create_loc_conf(ngx_conf_t *cf)
|
|||||||
* conf->upstream.cache_methods = 0;
|
* conf->upstream.cache_methods = 0;
|
||||||
* conf->upstream.temp_path = NULL;
|
* conf->upstream.temp_path = NULL;
|
||||||
* conf->upstream.hide_headers_hash = { NULL, 0 };
|
* conf->upstream.hide_headers_hash = { NULL, 0 };
|
||||||
* conf->upstream.uri = { 0, NULL };
|
|
||||||
* conf->upstream.location = NULL;
|
|
||||||
* conf->upstream.store_lengths = NULL;
|
* conf->upstream.store_lengths = NULL;
|
||||||
* conf->upstream.store_values = NULL;
|
* conf->upstream.store_values = NULL;
|
||||||
* conf->upstream.ssl_name = NULL;
|
* conf->upstream.ssl_name = NULL;
|
||||||
*
|
*
|
||||||
* conf->method = NULL;
|
* conf->method = NULL;
|
||||||
|
* conf->location = NULL;
|
||||||
|
* conf->url = { 0, NULL };
|
||||||
* conf->headers_source = NULL;
|
* conf->headers_source = NULL;
|
||||||
* conf->headers.lengths = NULL;
|
* conf->headers.lengths = NULL;
|
||||||
* conf->headers.values = NULL;
|
* conf->headers.values = NULL;
|
||||||
|
|||||||
@@ -2031,7 +2031,7 @@ ngx_http_upstream_send_request(ngx_http_request_t *r, ngx_http_upstream_t *u,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (c->tcp_nopush == NGX_TCP_NOPUSH_SET) {
|
if (c->tcp_nopush == NGX_TCP_NOPUSH_SET) {
|
||||||
if (ngx_tcp_push(c->fd) == NGX_ERROR) {
|
if (ngx_tcp_push(c->fd) == -1) {
|
||||||
ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno,
|
ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno,
|
||||||
ngx_tcp_push_n " failed");
|
ngx_tcp_push_n " failed");
|
||||||
ngx_http_upstream_finalize_request(r, u,
|
ngx_http_upstream_finalize_request(r, u,
|
||||||
|
|||||||
@@ -1992,6 +1992,9 @@ ngx_http_v2_state_settings(ngx_http_v2_connection_t *h2c, u_char *pos,
|
|||||||
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR);
|
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
||||||
|
"http2 SETTINGS frame");
|
||||||
|
|
||||||
return ngx_http_v2_state_settings_params(h2c, pos, end);
|
return ngx_http_v2_state_settings_params(h2c, pos, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2143,8 +2146,8 @@ ngx_http_v2_state_ping(ngx_http_v2_connection_t *h2c, u_char *pos, u_char *end)
|
|||||||
return ngx_http_v2_state_save(h2c, pos, end, ngx_http_v2_state_ping);
|
return ngx_http_v2_state_save(h2c, pos, end, ngx_http_v2_state_ping);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0,
|
||||||
"http2 PING frame, flags: %ud", h2c->state.flags);
|
"http2 PING frame");
|
||||||
|
|
||||||
if (h2c->state.flags & NGX_HTTP_V2_ACK_FLAG) {
|
if (h2c->state.flags & NGX_HTTP_V2_ACK_FLAG) {
|
||||||
return ngx_http_v2_state_skip(h2c, pos, end);
|
return ngx_http_v2_state_skip(h2c, pos, end);
|
||||||
|
|||||||
@@ -1095,9 +1095,9 @@ ngx_http_v2_create_headers_frame(ngx_http_request_t *r, u_char *pos,
|
|||||||
cl->next = NULL;
|
cl->next = NULL;
|
||||||
frame->last = cl;
|
frame->last = cl;
|
||||||
|
|
||||||
ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
"http2:%ui create HEADERS frame %p: len:%uz",
|
"http2:%ui create HEADERS frame %p: len:%uz fin:%ui",
|
||||||
stream->node->id, frame, frame->length);
|
stream->node->id, frame, frame->length, fin);
|
||||||
|
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
|
|||||||
if (ngx_freebsd_use_tcp_nopush
|
if (ngx_freebsd_use_tcp_nopush
|
||||||
&& c->tcp_nopush == NGX_TCP_NOPUSH_UNSET)
|
&& c->tcp_nopush == NGX_TCP_NOPUSH_UNSET)
|
||||||
{
|
{
|
||||||
if (ngx_tcp_nopush(c->fd) == NGX_ERROR) {
|
if (ngx_tcp_nopush(c->fd) == -1) {
|
||||||
err = ngx_socket_errno;
|
err = ngx_socket_errno;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
|
|||||||
|
|
||||||
if (c->tcp_nodelay == NGX_TCP_NODELAY_UNSET) {
|
if (c->tcp_nodelay == NGX_TCP_NODELAY_UNSET) {
|
||||||
|
|
||||||
if (ngx_tcp_nopush(c->fd) == NGX_ERROR) {
|
if (ngx_tcp_nopush(c->fd) == -1) {
|
||||||
err = ngx_socket_errno;
|
err = ngx_socket_errno;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user