Repository: trafficserver Updated Branches: refs/heads/master 897c1fd27 -> a2d005692
TS-2991: SessionManager incorrectly releasing sessions back to pool Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/1744191b Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/1744191b Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/1744191b Branch: refs/heads/master Commit: 1744191b50dcc8ce3ba520d68d79ee2183f493f5 Parents: 897c1fd Author: Brian Geffon <[email protected]> Authored: Wed Aug 6 11:43:42 2014 -0700 Committer: Brian Geffon <[email protected]> Committed: Wed Aug 6 11:43:42 2014 -0700 ---------------------------------------------------------------------- proxy/http/HttpSM.cc | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/1744191b/proxy/http/HttpSM.cc ---------------------------------------------------------------------- diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index e7c6d2f..3fcbf83 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -2768,6 +2768,13 @@ HttpSM::tunnel_handler_server(int event, HttpTunnelProducer * p) bool close_connection = false; + if (t_state.current.server->keep_alive == HTTP_KEEPALIVE && + server_entry->eos == false && plugin_tunnel_type == HTTP_NO_PLUGIN_TUNNEL) { + close_connection = false; + } else { + close_connection = true; + } + switch (event) { case VC_EVENT_INACTIVITY_TIMEOUT: case VC_EVENT_ACTIVE_TIMEOUT: @@ -2793,7 +2800,6 @@ HttpSM::tunnel_handler_server(int event, HttpTunnelProducer * p) break; } - close_connection = false; ink_assert(p->vc_type == HT_HTTP_SERVER); if (is_http_server_eos_truncation(p)) { @@ -2834,13 +2840,6 @@ HttpSM::tunnel_handler_server(int event, HttpTunnelProducer * p) t_state.current.server->state = HttpTransact::TRANSACTION_COMPLETE; t_state.current.server->abort = HttpTransact::DIDNOT_ABORT; - if (t_state.current.server->keep_alive == HTTP_KEEPALIVE && - server_entry->eos == false && plugin_tunnel_type == HTTP_NO_PLUGIN_TUNNEL) { - close_connection = false; - } else { - close_connection = true; - } - if (p->do_dechunking || p->do_chunked_passthru) { if (p->chunked_handler.truncation) { tunnel.abort_cache_write_finish_others(p);
