[
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.