You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by wa...@apache.org on 2012/08/28 21:57:38 UTC

[3/3] git commit: Fix for TS-1425: clean up the lingering read before deallocating its buffers

Fix for TS-1425: clean up the lingering read before deallocating its buffers


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7c2a6087
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7c2a6087
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7c2a6087

Branch: refs/heads/master
Commit: 7c2a60873aab331ccd6bc02b5c93105aeb0c4ca3
Parents: 53c74a1
Author: Bart Wyatt <wa...@apache.org>
Authored: Tue Aug 28 14:44:35 2012 -0500
Committer: Bart Wyatt <wa...@apache.org>
Committed: Tue Aug 28 14:44:35 2012 -0500

----------------------------------------------------------------------
 CHANGES              |    3 +++
 proxy/http/HttpSM.cc |    6 ++++++
 2 files changed, 9 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7c2a6087/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index eadf294..01747f6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 3.3.0
 
+  *) [TS-1425] clean up the lingering read before deallocating its buffers
+   when an origin server terminates the connection during a POST request
+
   *) [TS-1249] Disable ESI packed nodes by default.
    Author: Shu Kit Chan <ch...@gmail.com>
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7c2a6087/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index cc6e93a..0667635 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -4823,6 +4823,12 @@ HttpSM::handle_post_failure()
 
   // First order of business is to clean up from
   //  the tunnel
+  // note: since the tunnel is providing the buffer for a lingering
+  // client read (for abort watching purposes), we need to stop
+  // the read
+  if (false == t_state.redirect_info.redirect_in_process) {
+    ua_entry->read_vio = ua_session->do_io_read(this, 0, NULL);
+  }
   ua_entry->in_tunnel = false;
   server_entry->in_tunnel = false;
   tunnel.deallocate_buffers();