You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bc...@apache.org on 2014/05/15 18:53:44 UTC
git commit: TS-2791: SPDY POST transactions failing with
ERR_CLIENT_ABORT
Repository: trafficserver
Updated Branches:
refs/heads/master 4bb18a966 -> 77a852203
TS-2791: SPDY POST transactions failing with ERR_CLIENT_ABORT
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/77a85220
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/77a85220
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/77a85220
Branch: refs/heads/master
Commit: 77a8522036b3aeefcea9a870d7cc62e2e7b0aeb3
Parents: 4bb18a9
Author: Sudheer Vinukonda <su...@yahoo-inc.com>
Authored: Thu May 15 09:50:15 2014 -0700
Committer: Bryan Call <bc...@apache.org>
Committed: Thu May 15 09:52:50 2014 -0700
----------------------------------------------------------------------
proxy/FetchSM.cc | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/77a85220/proxy/FetchSM.cc
----------------------------------------------------------------------
diff --git a/proxy/FetchSM.cc b/proxy/FetchSM.cc
index 1ed73f5..dc2ef49 100644
--- a/proxy/FetchSM.cc
+++ b/proxy/FetchSM.cc
@@ -522,7 +522,11 @@ FetchSM::ext_lanuch()
void
FetchSM::ext_write_data(const void *data, size_t len)
{
- if (header_done && (fetch_flags & TS_FETCH_FLAGS_NEWLOCK)) {
+ bool writeReady = (header_done ||
+ (req_method == TS_FETCH_METHOD_POST) ||
+ (req_method == TS_FETCH_METHOD_PUT));
+
+ if (writeReady && (fetch_flags & TS_FETCH_FLAGS_NEWLOCK)) {
MUTEX_TAKE_LOCK(mutex, this_ethread());
}
@@ -532,10 +536,13 @@ FetchSM::ext_write_data(const void *data, size_t len)
// Before header_done, FetchSM may not
// be initialized.
//
- if (header_done)
+ if (writeReady) {
+ Debug(DEBUG_TAG, "[%s] re-enabling write_vio, header_done %u, req_method %u", __FUNCTION__, header_done, req_method);
write_vio->reenable();
+ fetch_handler(TS_EVENT_VCONN_WRITE_READY, write_vio);
+ }
- if (header_done && (fetch_flags & TS_FETCH_FLAGS_NEWLOCK)) {
+ if (writeReady && (fetch_flags & TS_FETCH_FLAGS_NEWLOCK)) {
MUTEX_UNTAKE_LOCK(mutex, this_ethread());
}
}