You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Igor Galić <i....@brainsware.org> on 2013/08/22 09:24:31 UTC
Re: git commit: TS-2107: change
proxy.config.http.transaction_active_timeout_in
----- Original Message -----
> Updated Branches:
> refs/heads/master 2e8f0c352 -> e5d27294b
>
>
> TS-2107: change proxy.config.http.transaction_active_timeout_in
>
> split proxy.config.http.transaction_active_timeout_in to
> proxy.config.http.transaction_header_timeout_in
> and proxy.config.http.transaction_request_timeout_in.
doc/reference/configuration/records.config.en.rst
644:.. ts:cv:: CONFIG proxy.config.http.transaction_active_timeout_in INT 0
lib/perl/examples/forw_proxy_conf.pl
36:$recedit->set(conf => "proxy.config.http.transaction_active_timeout_in", val => "1800");
lib/perl/lib/Apache/TS/AdminClient.pm
517: proxy.config.http.transaction_active_timeout_in
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/e5d27294
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/e5d27294
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/e5d27294
>
> Branch: refs/heads/master
> Commit: e5d27294be996520588825bad8c82788e15dde85
> Parents: 2e8f0c3
> Author: Chen Bin <ku...@taobao.com>
> Authored: Thu Aug 22 13:47:30 2013 +0800
> Committer: Chen Bin <ku...@taobao.com>
> Committed: Thu Aug 22 13:49:39 2013 +0800
>
> ----------------------------------------------------------------------
> CHANGES | 3 +++
> mgmt/RecordsConfig.cc | 4 +++-
> mgmt/cli/ConfigCmd.cc | 9 +++++----
> mgmt/cli/ConfigCmd.h | 3 ++-
> mgmt/cli/ShowCmd.cc | 9 ++++++---
> mgmt/cli/cli_detailed_command_list.txt | 6 ++++--
> proxy/http/HttpConfig.cc | 8 ++++++--
> proxy/http/HttpConfig.h | 9 +++++++--
> proxy/http/HttpSM.cc | 27 +++++++++++++++++++++++++--
> 9 files changed, 61 insertions(+), 17 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/CHANGES
> ----------------------------------------------------------------------
> diff --git a/CHANGES b/CHANGES
> index c2e5d1b..cadbb34 100644
> --- a/CHANGES
> +++ b/CHANGES
> @@ -2,6 +2,9 @@
> Changes with Apache Traffic Server 4.1.0
>
>
> + *) [TS-2107] split proxy.config.http.transaction_active_timeout_in to
> proxy.config.http.transaction_header_timeout_in
> + and proxy.config.http.transaction_request_timeout_in.
> +
> *) [TS-2114] buffer_upload plugin defines true and false
> Author: Kit Chan <ch...@gmail.com>
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/mgmt/RecordsConfig.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/RecordsConfig.cc b/mgmt/RecordsConfig.cc
> index 11f60c7..8e90ac1 100644
> --- a/mgmt/RecordsConfig.cc
> +++ b/mgmt/RecordsConfig.cc
> @@ -506,7 +506,9 @@ RecordElement RecordsConfig[] = {
> ,
> {RECT_CONFIG, "proxy.config.http.transaction_no_activity_timeout_out",
> RECD_INT, "30", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
> ,
> - {RECT_CONFIG, "proxy.config.http.transaction_active_timeout_in", RECD_INT,
> "900", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
> + {RECT_CONFIG, "proxy.config.http.transaction_header_active_timeout_in",
> RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
> + ,
> + {RECT_CONFIG, "proxy.config.http.transaction_request_active_timeout_in",
> RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
> ,
> {RECT_CONFIG, "proxy.config.http.transaction_active_timeout_out",
> RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_STR, "^[0-9]+$", RECA_NULL}
> ,
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/mgmt/cli/ConfigCmd.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/cli/ConfigCmd.cc b/mgmt/cli/ConfigCmd.cc
> index a40da20..ae7a5c5 100644
> --- a/mgmt/cli/ConfigCmd.cc
> +++ b/mgmt/cli/ConfigCmd.cc
> @@ -978,8 +978,11 @@ Cmd_ConfigHttp(ClientData clientData, Tcl_Interp *
> interp, int argc, const char
> case CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_OUT:
> return (Cli_RecordInt_Action(action,
> "proxy.config.http.transaction_no_activity_timeout_out",
> argtable->arg_int));
>
> - case CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_IN:
> - return (Cli_RecordInt_Action(action,
> "proxy.config.http.transaction_active_timeout_in", argtable->arg_int));
> + case CMD_CONFIG_HTTP_HEADER_ACTIVE_TIMEOUT_IN:
> + return (Cli_RecordInt_Action(action,
> "proxy.config.http.transaction_header_active_timeout_in",
> argtable->arg_int));
> +
> + case CMD_CONFIG_HTTP_REQUEST_ACTIVE_TIMEOUT_IN:
> + return (Cli_RecordInt_Action(action,
> "proxy.config.http.transaction_request_active_timeout_in",
> argtable->arg_int));
>
> case CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_OUT:
> return (Cli_RecordInt_Action(action,
> "proxy.config.http.transaction_active_timeout_out",
> argtable->arg_int));
> @@ -1039,8 +1042,6 @@ CmdArgs_ConfigHttp()
> createArgument("inactive-timeout-out", 1, CLI_ARGV_OPTION_INT_VALUE,
> (char *) NULL, CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_OUT,
> "Inactive timeout outbound <seconds>",
> (char *) NULL);
> - createArgument("active-timeout-in", 1, CLI_ARGV_OPTION_INT_VALUE,
> - (char *) NULL, CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_IN, "Active
> timeout inbound <seconds>", (char *) NULL);
> createArgument("active-timeout-out", 1, CLI_ARGV_OPTION_INT_VALUE,
> (char *) NULL, CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_OUT, "Active
> timeout outbound <seconds>", (char *) NULL);
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/mgmt/cli/ConfigCmd.h
> ----------------------------------------------------------------------
> diff --git a/mgmt/cli/ConfigCmd.h b/mgmt/cli/ConfigCmd.h
> index 42ed681..05473c4 100644
> --- a/mgmt/cli/ConfigCmd.h
> +++ b/mgmt/cli/ConfigCmd.h
> @@ -113,7 +113,8 @@ typedef enum
> CMD_CONFIG_HTTP_KEEP_ALIVE_TIMEOUT_OUT,
> CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_IN,
> CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_OUT,
> - CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_IN,
> + CMD_CONFIG_HTTP_HEADER_ACTIVE_TIMEOUT_IN,
> + CMD_CONFIG_HTTP_REQUEST_ACTIVE_TIMEOUT_IN,
> CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_OUT,
> CMD_CONFIG_HTTP_REMOVE_FROM,
> CMD_CONFIG_HTTP_REMOVE_REFERER,
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/mgmt/cli/ShowCmd.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/cli/ShowCmd.cc b/mgmt/cli/ShowCmd.cc
> index ed71560..138e8cb 100644
> --- a/mgmt/cli/ShowCmd.cc
> +++ b/mgmt/cli/ShowCmd.cc
> @@ -1155,7 +1155,8 @@ ShowHttp()
> TSInt keepalive_timeout_out = -1;
> TSInt inactivity_timeout_in = -1;
> TSInt inactivity_timeout_out = -1;
> - TSInt activity_timeout_in = -1;
> + TSInt header_activity_timeout_in = -1;
> + TSInt request_activity_timeout_in = -1;
> TSInt activity_timeout_out = -1;
> TSInt max_alts = -1;
> TSInt remove_from = -1;
> @@ -1176,7 +1177,8 @@ ShowHttp()
> Cli_RecordGetInt("proxy.config.http.keep_alive_no_activity_timeout_out",
> &keepalive_timeout_out);
> Cli_RecordGetInt("proxy.config.http.transaction_no_activity_timeout_in",
> &inactivity_timeout_in);
> Cli_RecordGetInt("proxy.config.http.transaction_no_activity_timeout_out",
> &inactivity_timeout_out);
> - Cli_RecordGetInt("proxy.config.http.transaction_active_timeout_in",
> &activity_timeout_in);
> + Cli_RecordGetInt("proxy.config.http.transaction_header_active_timeout_in",
> &header_activity_timeout_in);
> +
> Cli_RecordGetInt("proxy.config.http.transaction_request_active_timeout_in",
> &request_activity_timeout_in);
> Cli_RecordGetInt("proxy.config.http.transaction_active_timeout_out",
> &activity_timeout_out);
> Cli_RecordGetInt("proxy.config.cache.limits.http.max_alts", &max_alts);
> Cli_RecordGetInt("proxy.config.http.anonymize_remove_from", &remove_from);
> @@ -1199,7 +1201,8 @@ ShowHttp()
> Cli_Printf("Keep-Alive Timeout Outbound --- %d s\n",
> keepalive_timeout_out);
> Cli_Printf("Inactivity Timeout Inbound ---- %d s\n",
> inactivity_timeout_in);
> Cli_Printf("Inactivity Timeout Outbound --- %d s\n",
> inactivity_timeout_out);
> - Cli_Printf("Activity Timeout Inbound ------ %d s\n", activity_timeout_in);
> + Cli_Printf("Header Activity Timeout Inbound ------ %d s\n",
> header_activity_timeout_in);
> + Cli_Printf("Request Activity Timeout Inbound ------ %d s\n",
> request_activity_timeout_in);
> Cli_Printf("Activity Timeout Outbound ----- %d s\n",
> activity_timeout_out);
> Cli_Printf("Maximum Number of Alternates -- %d\n", max_alts);
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/mgmt/cli/cli_detailed_command_list.txt
> ----------------------------------------------------------------------
> diff --git a/mgmt/cli/cli_detailed_command_list.txt
> b/mgmt/cli/cli_detailed_command_list.txt
> index 54b2776..670be8c 100644
> --- a/mgmt/cli/cli_detailed_command_list.txt
> +++ b/mgmt/cli/cli_detailed_command_list.txt
> @@ -362,7 +362,8 @@ http HTTP Configuration
> Keep-Alive Timeout Outbound --- 10 s
> (proxy.config.http.keep_alive_no_activity_timeout_out)
> Inactivity Timeout Inbound ---- 120 s
> (proxy.config.http.transaction_no_activity_timeout_in)
> Inactivity Timeout Outbound --- 120 s
> (proxy.config.http.transaction_no_activity_timeout_out)
> - Activity Timeout Inbound ------ 7200 s
> (proxy.config.http.transaction_active_timeout_in)
> + Header Activity Timeout Inbound ------ 7200 s
> (proxy.config.http.transaction_header_active_timeout_in)
> + Request Activity Timeout Inbound ------ 7200 s
> (proxy.config.http.transaction_request_active_timeout_in)
> Activity Timeout Outbound ----- 7200 s
> (proxy.config.http.transaction_active_timeout_out)
> Maximum Number of Alternates -- 3
> (proxy.config.cache.limits.http.max_alts)
> Remove the following common headers
> @@ -965,7 +966,8 @@ http HTTP Configuration
> keep-alive-timeout-out
> (proxy.config.http.keep_alive_no_activity_timeout_out)
> inactive-timeout-in
> (proxy.config.http.transaction_no_activity_timeout_in)
> inactive-timeout-out
> (proxy.config.http.transaction_no_activity_timeout_out)
> - active-timeout-in
> (proxy.config.http.transaction_active_timeout_in)
> + header-active-timeout-in
> (proxy.config.http.transaction_header_active_timeout_in)
> + request-active-timeout-in
> (proxy.config.http.transaction_request_active_timeout_in)
> active-timeout-out
> (proxy.config.http.transaction_active_timeout_out)
>
> ts# config:http keep-alive-timeout-in 10
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/proxy/http/HttpConfig.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
> index 461a9b7..14cbf1e 100644
> --- a/proxy/http/HttpConfig.cc
> +++ b/proxy/http/HttpConfig.cc
> @@ -1190,7 +1190,10 @@ HttpConfig::startup()
> "proxy.config.http.transaction_no_activity_timeout_in");
> HttpEstablishStaticConfigLongLong(c.oride.transaction_no_activity_timeout_out,
> "proxy.config.http.transaction_no_activity_timeout_out");
> - HttpEstablishStaticConfigLongLong(c.transaction_active_timeout_in,
> "proxy.config.http.transaction_active_timeout_in");
> + HttpEstablishStaticConfigLongLong(c.transaction_header_active_timeout_in,
> "proxy.config.http.transaction_header_active_timeout_in");
> + HttpEstablishStaticConfigLongLong(c.transaction_request_active_timeout_in,
> "proxy.config.http.transaction_request_active_timeout_in");
> + if (c.transaction_header_active_timeout_in >=
> c.transaction_request_active_timeout_in)
> + c.transaction_request_active_timeout_in = 0;
> HttpEstablishStaticConfigLongLong(c.oride.transaction_active_timeout_out,
> "proxy.config.http.transaction_active_timeout_out");
> HttpEstablishStaticConfigLongLong(c.accept_no_activity_timeout,
> "proxy.config.http.accept_no_activity_timeout");
>
> @@ -1461,7 +1464,8 @@ HttpConfig::reconfigure()
> params->oride.keep_alive_no_activity_timeout_out =
> m_master.oride.keep_alive_no_activity_timeout_out;
> params->oride.transaction_no_activity_timeout_in =
> m_master.oride.transaction_no_activity_timeout_in;
> params->oride.transaction_no_activity_timeout_out =
> m_master.oride.transaction_no_activity_timeout_out;
> - params->transaction_active_timeout_in =
> m_master.transaction_active_timeout_in;
> + params->oride.transaction_header_active_timeout_in =
> m_master.oride.transaction_header_active_timeout_in;
> + params->oride.transaction_request_active_timeout_in =
> m_master.oride.transaction_request_active_timeout_in;
> params->oride.transaction_active_timeout_out =
> m_master.oride.transaction_active_timeout_out;
> params->accept_no_activity_timeout = m_master.accept_no_activity_timeout;
> params->oride.background_fill_active_timeout =
> m_master.oride.background_fill_active_timeout;
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/proxy/http/HttpConfig.h
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
> index c220463..04e14cb 100644
> --- a/proxy/http/HttpConfig.h
> +++ b/proxy/http/HttpConfig.h
> @@ -420,6 +420,7 @@ struct OverridableHttpConfigParams {
> cache_guaranteed_min_lifetime(0),
> cache_guaranteed_max_lifetime(31536000), cache_max_stale_age(604800),
> keep_alive_no_activity_timeout_in(115),
> keep_alive_no_activity_timeout_out(120),
> transaction_no_activity_timeout_in(30),
> transaction_no_activity_timeout_out(30),
> + transaction_header_active_timeout_in(0),
> transaction_request_active_timeout_in(0),
> transaction_active_timeout_out(0), origin_max_connections(0),
> connect_attempts_max_retries(0),
> connect_attempts_max_retries_dead_server(3),
> connect_attempts_rr_retries(3), connect_attempts_timeout(30),
> @@ -558,6 +559,8 @@ struct OverridableHttpConfigParams {
> MgmtInt keep_alive_no_activity_timeout_out;
> MgmtInt transaction_no_activity_timeout_in;
> MgmtInt transaction_no_activity_timeout_out;
> + MgmtInt transaction_header_active_timeout_in;
> + MgmtInt transaction_request_active_timeout_in;
> MgmtInt transaction_active_timeout_out;
> MgmtInt origin_max_connections;
>
> @@ -669,7 +672,8 @@ public:
> MgmtByte session_auth_cache_keep_alive_enabled;
> MgmtInt origin_server_pipeline;
> MgmtInt user_agent_pipeline;
> - MgmtInt transaction_active_timeout_in;
> + MgmtInt transaction_header_active_timeout_in;
> + MgmtInt transaction_request_active_timeout_in;
> MgmtInt accept_no_activity_timeout;
>
> ////////////////////////////////////
> @@ -902,7 +906,8 @@ HttpConfigParams::HttpConfigParams()
> session_auth_cache_keep_alive_enabled(1),
> origin_server_pipeline(1),
> user_agent_pipeline(8),
> - transaction_active_timeout_in(900),
> + transaction_header_active_timeout_in(0),
> + transaction_request_active_timeout_in(0),
> accept_no_activity_timeout(120),
> parent_connect_attempts(4),
> per_parent_connect_attempts(2),
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/e5d27294/proxy/http/HttpSM.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
> index ba460da..ad9cd4c 100644
> --- a/proxy/http/HttpSM.cc
> +++ b/proxy/http/HttpSM.cc
> @@ -636,8 +636,11 @@ HttpSM::attach_client_session(HttpClientSession *
> client_vc, IOBufferReader * bu
> // set up timeouts //
> /////////////////////////
> client_vc->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(HttpConfig::m_master.accept_no_activity_timeout));
> -
> client_vc->get_netvc()->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_active_timeout_in));
> -
> + if (HttpConfig::m_master.transaction_header_active_timeout_in)
> +
> client_vc->get_netvc()->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_header_active_timeout_in));
> + else if (HttpConfig::m_master.transaction_request_active_timeout_in)
> +
> client_vc->get_netvc()->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_request_active_timeout_in));
> +
> // Add our state sm to the sm list
> state_add_to_list(EVENT_NONE, NULL);
> }
> @@ -758,6 +761,7 @@ HttpSM::state_read_client_request_header(int event, void
> *data)
> milestones.ua_read_header_done = ink_get_hrtime();
> }
>
> + int method;
> switch (state) {
> case PARSE_ERROR:
> DebugSM("http", "[%" PRId64 "] error parsing client request header",
> sm_id);
> @@ -765,6 +769,7 @@ HttpSM::state_read_client_request_header(int event, void
> *data)
> // Disable further I/O on the client
> ua_entry->read_vio->nbytes = ua_entry->read_vio->ndone;
>
> + ua_session->get_netvc()->cancel_active_timeout();
> call_transact_and_set_next_state(HttpTransact::BadRequest);
> break;
>
> @@ -776,6 +781,7 @@ HttpSM::state_read_client_request_header(int event, void
> *data)
> // Disable further I/O on the client
> ua_entry->read_vio->nbytes = ua_entry->read_vio->ndone;
>
> + ua_session->get_netvc()->cancel_active_timeout();
> call_transact_and_set_next_state(HttpTransact::BadRequest);
> break;
> } else if (event == VC_EVENT_READ_COMPLETE) {
> @@ -819,6 +825,21 @@ HttpSM::state_read_client_request_header(int event, void
> *data)
> (t_state.method == HTTP_WKSIDX_POST &&
> HttpConfig::m_master.post_copy_size))
> enable_redirection = HttpConfig::m_master.redirection_enabled;
>
> + method = t_state.hdr_info.client_request.method_get_wksidx();
> + if ((method == HTTP_WKSIDX_POST || method == HTTP_WKSIDX_PUT ||
> (t_state.hdr_info.extension_method &&
> t_state.hdr_info.request_content_length > 0))) {
> + // is setted
> HttpConfig::m_master.transaction_header_active_timeout_in, so should reset
> active_timeout_in
> + if (ua_session->get_netvc()->get_active_timeout() ==
> HRTIME_SECONDS(HttpConfig::m_master.transaction_header_active_timeout_in)) {
> + if (HttpConfig::m_master.transaction_request_active_timeout_in) {
> + if
> (HRTIME_SECONDS(HttpConfig::m_master.transaction_request_active_timeout_in)
> > (milestones.ua_read_header_done - milestones.sm_start)) {
> +
> ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_request_active_timeout_in)
> - (milestones.ua_read_header_done - milestones.sm_start));
> + }
> + } else {
> + ua_session->get_netvc()->cancel_active_timeout();
> + }
> + }
> + } else {
> + ua_session->get_netvc()->cancel_active_timeout();
> + }
> call_transact_and_set_next_state(HttpTransact::ModifyRequest);
>
> break;
> @@ -3268,6 +3289,7 @@ HttpSM::tunnel_handler_post_ua(int event,
> HttpTunnelProducer * p)
> case VC_EVENT_ACTIVE_TIMEOUT:
> // Did not complete post tunnling. Abort the
> // server and close the ua
> + ua_session->get_netvc()->cancel_active_timeout();
> p->handler_state = HTTP_SM_POST_UA_FAIL;
> tunnel.chain_abort_all(p);
> p->read_vio = NULL;
> @@ -3297,6 +3319,7 @@ HttpSM::tunnel_handler_post_ua(int event,
> HttpTunnelProducer * p)
> p->handler_state = HTTP_SM_POST_SUCCESS;
> p->read_success = true;
> ua_entry->in_tunnel = false;
> + ua_session->get_netvc()->cancel_active_timeout();
>
> if (p->do_dechunking || p->do_chunked_passthru) {
> if (p->chunked_handler.truncation) {
>
>
--
Igor Galić
Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515 2EA5 4B1D 9E08 A097 C9AE