This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 8.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 71519ba534fb5bd5823f2d4a6b7ba56d371775a0 Author: Susan Hinrichs <[email protected]> AuthorDate: Tue Feb 11 22:23:46 2020 +0000 Fix crash when H2 client does not set End-of-data bit (cherry picked from commit 7d4f66b0b25f6aaccc2f9c7d2bde58ce2b47bd15) --- proxy/http/HttpSM.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index b137470..e431c40 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -2696,6 +2696,8 @@ HttpSM::tunnel_handler_post(int event, void *data) handle_post_failure(); break; case HTTP_SM_POST_UA_FAIL: + // Client side failed. Shutdown and go home. No need to communicate back to UA + terminate_sm = true; break; case HTTP_SM_POST_SUCCESS: // It's time to start reading the response @@ -3441,9 +3443,7 @@ HttpSM::tunnel_handler_post_ua(int event, HttpTunnelProducer *p) hsm_release_assert(ua_entry->in_tunnel == true); if (p->consumer_list.head && p->consumer_list.head->vc_type == HT_TRANSFORM) { hsm_release_assert(post_transform_info.entry->in_tunnel == true); - } else if (server_entry != nullptr) { - hsm_release_assert(server_entry->in_tunnel == true); - } + } // server side may have completed before the user agent side, so it may no longer be in tunnel break; case VC_EVENT_READ_COMPLETE: @@ -3580,7 +3580,8 @@ HttpSM::tunnel_handler_post_server(int event, HttpTunnelConsumer *c) case VC_EVENT_WRITE_COMPLETE: // Completed successfully - c->write_success = true; + c->write_success = true; + server_entry->in_tunnel = false; break; default: ink_release_assert(0);
