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