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);

Reply via email to