You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "kuotai (JIRA)" <ji...@apache.org> on 2012/07/18 04:27:34 UTC

[jira] [Comment Edited] (TS-1348) replace keepalive connection timeout handle from set_active_timeout to set_inactivity_timeout

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

kuotai edited comment on TS-1348 at 7/18/12 2:27 AM:
-----------------------------------------------------

yeah, if use only set_inactivity_timeout in KA, we must call cancel_active_timeout(). The additional patch:

{code}
diff --git a/proxy/http/HttpClientSession.cc b/proxy/http/HttpClientSession.cc
index 17d6945..ae6652a 100644
--- a/proxy/http/HttpClientSession.cc
+++ b/proxy/http/HttpClientSession.cc
@@ -577,6 +577,7 @@ HttpClientSession::attach_server_session(HttpServerSession * ssession, bool tran
     if (transaction_done) {
       ssession->get_netvc()->
         set_inactivity_timeout(HRTIME_SECONDS(current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_out));
+      ssession->get_netvc()->cancel_active_timeout();
     } else {
       // we are serving from the cache - this could take a while.
       ssession->get_netvc()->cancel_inactivity_timeout();
@@ -628,6 +629,7 @@ HttpClientSession::release(IOBufferReader * r)
     ka_vio = this->do_io_read(this, INT64_MAX, read_buffer);
     ink_assert(slave_ka_vio != ka_vio);
     client_vc->set_inactivity_timeout(HRTIME_SECONDS(ka_in));
+    client_vc->cancel_active_timeout();
   }
 }
{code}
                
      was (Author: kuotai):
    yeah, if use only set_inactivity_timeout in KA, we must call cancel_active_timeout(). The additional patch:

diff --git a/proxy/http/HttpClientSession.cc b/proxy/http/HttpClientSession.cc
index 17d6945..ae6652a 100644
--- a/proxy/http/HttpClientSession.cc
+++ b/proxy/http/HttpClientSession.cc
@@ -577,6 +577,7 @@ HttpClientSession::attach_server_session(HttpServerSession * ssession, bool tran
     if (transaction_done) {
       ssession->get_netvc()->
         set_inactivity_timeout(HRTIME_SECONDS(current_reader->t_state.txn_conf->keep_alive_no_activity_timeout_out));
+      ssession->get_netvc()->cancel_active_timeout();
     } else {
       // we are serving from the cache - this could take a while.
       ssession->get_netvc()->cancel_inactivity_timeout();
@@ -628,6 +629,7 @@ HttpClientSession::release(IOBufferReader * r)
     ka_vio = this->do_io_read(this, INT64_MAX, read_buffer);
     ink_assert(slave_ka_vio != ka_vio);
     client_vc->set_inactivity_timeout(HRTIME_SECONDS(ka_in));
+    client_vc->cancel_active_timeout();
   }
 }
 

                  
> replace keepalive connection timeout handle from set_active_timeout to set_inactivity_timeout
> ---------------------------------------------------------------------------------------------
>
>                 Key: TS-1348
>                 URL: https://issues.apache.org/jira/browse/TS-1348
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Core, Network, Performance
>    Affects Versions: 3.2.0
>            Reporter: kuotai
>            Assignee: kuotai
>             Fix For: 3.3.0
>
>         Attachments: kpa_timeout.patch
>
>
> if calling set_active_timeout function in keepalive, every connection will create one event and schedule in event system. so if having more and more connection in keepalive state(more and more event in schedule system), system have to take more time to PriorityEventQueue::check_ready.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira