[ 
https://issues.apache.org/jira/browse/TS-2791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13994113#comment-13994113
 ] 

Sudheer Vinukonda commented on TS-2791:
---------------------------------------

So, the race condition seems to be with the code below. It looks like there's a 
header_done flag to guard against sending the client response too soon. But, 
that may be an issue with POST requests. When I removed that flag, the POST 
requests (even large ones) are now successful. Am considering enhancing the API 
below to not check for header_done for POST requests towards origin.

{code}
--- a/proxy/FetchSM.cc  2014-05-10 01:42:07.006063763 +0000
+++ b/proxy/FetchSM.cc  2014-05-10 01:43:56.714348545 +0000
@@ -532,8 +532,10 @@
   // Before header_done, FetchSM may not 
   // be initialized.
   //  
-  if (header_done)
+  //if (header_done) {
     write_vio->reenable();
+    fetch_handler(TS_EVENT_VCONN_WRITE_READY, write_vio);
+  //}
 
   if (header_done && (fetch_flags & TS_FETCH_FLAGS_NEWLOCK)) {
     MUTEX_UNTAKE_LOCK(mutex, this_ethread());
{code}

> POST transactions failing with ERR_CLIENT_ABORT
> -----------------------------------------------
>
>                 Key: TS-2791
>                 URL: https://issues.apache.org/jira/browse/TS-2791
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: SPDY
>            Reporter: Sudheer Vinukonda
>              Labels: spdy, yahoo
>
> During our production testing of SPDY, we noticed that when trying to compose 
> mails (POST transactions) on Firefox, we are seeing "Network Error" from the 
> browser and ERR_CLIENT_ABORT from squid.logs. Upon some analysis, this issue 
> appears to be likely specific to SPDY transactions and seem to be triggered 
> by the expiry of proxy.config.http.transaction_no_activity_timeout_in timer. 
> After some investigation, it looks like this may be caused by a timing issue 
> related to streaming of the POST data to the origin.. If the POST body (data) 
> is available by the time client session and origin connection is ready, the 
> POST is successful, but, if the data is large enough that it is not all read 
> yet by the time origin connection is established, the streaming does not get 
> triggered. Debugging further to identify the root cause.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to