You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ez...@apache.org on 2019/05/16 17:30:28 UTC

[trafficserver] 02/02: Don't read frames after sending GOAWAY with an error code

This is an automated email from the ASF dual-hosted git repository.

eze pushed a commit to branch 7.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit 0b7685afbe271c14a99f7cfeefb3f181e50fc89f
Author: Masakazu Kitajo <ma...@apache.org>
AuthorDate: Thu Apr 18 22:27:49 2019 +0900

    Don't read frames after sending GOAWAY with an error code
    
    (cherry picked from commit 00237a141cdb6d9f2268080f03cb5f58ee32c7ec)
---
 proxy/http2/Http2ClientSession.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/proxy/http2/Http2ClientSession.cc b/proxy/http2/Http2ClientSession.cc
index f61cf70..8dc30c3 100644
--- a/proxy/http2/Http2ClientSession.cc
+++ b/proxy/http2/Http2ClientSession.cc
@@ -499,6 +499,11 @@ Http2ClientSession::state_process_frame_read(int event, VIO *vio, bool inside_fr
   }
 
   while (this->sm_reader->read_avail() >= (int64_t)HTTP2_FRAME_HEADER_LEN) {
+    // Cancel reading if there was an error
+    if (connection_state.tx_error_code.code != static_cast<uint32_t>(Http2ErrorCode::HTTP2_ERROR_NO_ERROR)) {
+      DebugHttp2Ssn("reading a frame has been canceled (%u)", connection_state.tx_error_code.code);
+      break;
+    }
     // Return if there was an error
     Http2ErrorCode err;
     if (do_start_frame_read(err) < 0) {