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