Skip to content
Snippets Groups Projects
Commit 072c5af8 authored by Craig Tiller's avatar Craig Tiller
Browse files

Write an essay

parent 97a63225
No related branches found
No related tags found
No related merge requests found
...@@ -381,16 +381,38 @@ static grpc_error *update_incoming_window(grpc_exec_ctx *exec_ctx, ...@@ -381,16 +381,38 @@ static grpc_error *update_incoming_window(grpc_exec_ctx *exec_ctx,
s->incoming_window_delta + s->incoming_window_delta +
t->settings[GRPC_ACKED_SETTINGS] t->settings[GRPC_ACKED_SETTINGS]
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]) { [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]) {
char *msg; if (incoming_frame_size <=
gpr_asprintf(&msg, s->incoming_window_delta +
"frame of size %d overflows incoming window of %" PRId64, t->settings[GRPC_SENT_SETTINGS]
t->incoming_frame_size, [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]) {
s->incoming_window_delta + gpr_log(
t->settings[GRPC_ACKED_SETTINGS] GPR_ERROR,
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]); "Incoming frame of size %d exceeds incoming window size of %" PRId64
grpc_error *err = GRPC_ERROR_CREATE(msg); ".\n"
gpr_free(msg); "The (un-acked, future) window size would be %" PRId64
return err; " which is not exceeded.\n"
"This would usually cause a disconnection, but allowing it due to "
"broken HTTP2 implementations in the wild.\n"
"See (for example) https://github.com/netty/netty/issues/6520.",
t->incoming_frame_size,
s->incoming_window_delta +
t->settings[GRPC_ACKED_SETTINGS]
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE],
s->incoming_window_delta +
t->settings[GRPC_SENT_SETTINGS]
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]);
} else {
char *msg;
gpr_asprintf(&msg,
"frame of size %d overflows incoming window of %" PRId64,
t->incoming_frame_size,
s->incoming_window_delta +
t->settings[GRPC_ACKED_SETTINGS]
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]);
grpc_error *err = GRPC_ERROR_CREATE(msg);
gpr_free(msg);
return err;
}
} }
GRPC_CHTTP2_FLOW_DEBIT_STREAM_INCOMING_WINDOW_DELTA("parse", t, s, GRPC_CHTTP2_FLOW_DEBIT_STREAM_INCOMING_WINDOW_DELTA("parse", t, s,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment