You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "John Plevyak (JIRA)" <ji...@apache.org> on 2010/09/04 03:24:36 UTC

[jira] Commented: (TS-287) transaction_active_timeout_in does not trigger on the first request of a Keep-Alive connection

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

John Plevyak commented on TS-287:
---------------------------------

I looked into this and I don't think what is happening is what you think is happening. 
What is happening is that with pipelining, the POST is getting written down in the background,
so we are off the active timer and onto the keepalive timer as per HttpSM.cc:7436 (mainline)
then 

    // Set the active timeout to the same as the inactive time so
    //   that this connection does not hang around forever if
    //   the ua hasn't closed
    client_vc->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.keep_alive_no_activity_timeout_out));

in HttpClientSession.cc:620.

Now I am no HTTP guy, so I have no idea if this is right or what, but when the new transaction starts
for some reason it isn't calling set_acitive_timeout (why I have no idea, but that is called from 
HttpClientSession::new_transaction()).

That is the first problem.  The second problem is that the initial set_active_timeout is being called when the transaction
is completely disabled (i.e. inactive).  The reason is that nbytes for the read is 0 so the read isn't enabled.
The active timeout is defined as being on an active connection and it is automatically disabled when the
connection becomes inactive (e.g. when you are nolonger reading and are done writing).  So in order to even
get the active timeout to start you have to have setup the read or have something in the write buffer and
the connection read or write enabled.

So this is an HTTP problem which is outside of my domain.


> transaction_active_timeout_in does not trigger on the first request of a Keep-Alive connection
> ----------------------------------------------------------------------------------------------
>
>                 Key: TS-287
>                 URL: https://issues.apache.org/jira/browse/TS-287
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core
>            Reporter: Steve Jiang
>             Fix For: 2.1.3
>
>         Attachments: slowclient.pl
>
>
> proxy.config.http.transaction_active_timeout_in does not trigger on a slow request on if the request is the first on a new client connection, because the timeout event is cancelled before it can be triggered.  
> Subsequent requests with keep-alive on the same connection will correctly trigger the active_timeout_in.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.