|
|
|
@ -139,22 +139,27 @@ static bool update_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s, |
|
|
|
|
|
|
|
|
|
static void report_stall(grpc_chttp2_transport* t, grpc_chttp2_stream* s, |
|
|
|
|
const char* staller) { |
|
|
|
|
gpr_log( |
|
|
|
|
GPR_DEBUG, |
|
|
|
|
"%s:%p stream %d stalled by %s [fc:pending=%" PRIdPTR |
|
|
|
|
":pending-compressed=%" PRIdPTR ":flowed=%" PRId64 |
|
|
|
|
":peer_initwin=%d:t_win=%" PRId64 ":s_win=%d:s_delta=%" PRId64 "]", |
|
|
|
|
t->peer_string, t, s->id, staller, s->flow_controlled_buffer.length, |
|
|
|
|
s->compressed_data_buffer.length, s->flow_controlled_bytes_flowed, |
|
|
|
|
t->settings[GRPC_ACKED_SETTINGS] |
|
|
|
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE], |
|
|
|
|
t->flow_control->remote_window(), |
|
|
|
|
static_cast<uint32_t> GPR_MAX( |
|
|
|
|
0, |
|
|
|
|
s->flow_control->remote_window_delta() + |
|
|
|
|
(int64_t)t->settings[GRPC_PEER_SETTINGS] |
|
|
|
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]), |
|
|
|
|
s->flow_control->remote_window_delta()); |
|
|
|
|
if (grpc_flowctl_trace.enabled()) { |
|
|
|
|
gpr_log( |
|
|
|
|
GPR_DEBUG, |
|
|
|
|
"%s:%p stream %d moved to stalled list by %s. This is FULLY expected " |
|
|
|
|
"to happen in a healthy program that is not seeing flow control stalls." |
|
|
|
|
" However, if you know that there are unwanted stalls, here is some " |
|
|
|
|
"helpful data: [fc:pending=%" PRIdPTR ":pending-compressed=%" PRIdPTR |
|
|
|
|
":flowed=%" PRId64 ":peer_initwin=%d:t_win=%" PRId64 |
|
|
|
|
":s_win=%d:s_delta=%" PRId64 "]", |
|
|
|
|
t->peer_string, t, s->id, staller, s->flow_controlled_buffer.length, |
|
|
|
|
s->compressed_data_buffer.length, s->flow_controlled_bytes_flowed, |
|
|
|
|
t->settings[GRPC_ACKED_SETTINGS] |
|
|
|
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE], |
|
|
|
|
t->flow_control->remote_window(), |
|
|
|
|
static_cast<uint32_t> GPR_MAX( |
|
|
|
|
0, |
|
|
|
|
s->flow_control->remote_window_delta() + |
|
|
|
|
(int64_t)t->settings[GRPC_PEER_SETTINGS] |
|
|
|
|
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]), |
|
|
|
|
s->flow_control->remote_window_delta()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static bool stream_ref_if_not_destroyed(gpr_refcount* r) { |
|
|
|
|