diff options
author | 2016-02-22 17:45:43 -0800 | |
---|---|---|
committer | 2016-02-22 17:45:43 -0800 | |
commit | acbcdb6d9416ce2985e044338d8887c29aba7e85 (patch) | |
tree | 3a68d6313651fa090b35638a679f326334b06dcb /src | |
parent | 349bba9179f27a058470de3c2fd2ac6c9ccb80b5 (diff) | |
parent | 857c4703ce9791ebc431181afc8a20559a8b67c5 (diff) |
Merge pull request #5347 from yang-g/check_error_in_read
Discard the read buffer on stream error
Diffstat (limited to 'src')
-rw-r--r-- | src/core/transport/chttp2_transport.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 617d98875c..c3efc36cc5 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -1019,6 +1019,11 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx, stream_global->recv_initial_metadata_ready = NULL; } if (stream_global->recv_message_ready != NULL) { + while (stream_global->seen_error && + (bs = grpc_chttp2_incoming_frame_queue_pop( + &stream_global->incoming_frames)) != NULL) { + grpc_byte_stream_destroy(exec_ctx, bs); + } if (stream_global->incoming_frames.head != NULL) { *stream_global->recv_message = grpc_chttp2_incoming_frame_queue_pop( &stream_global->incoming_frames); |