You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2016/05/11 20:44:33 UTC
[trafficserver] branch master updated: TS-3123 Make
proxy.config.http.transaction_active_timeout_in overridable
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch master
in repository https://git-dual.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new e44ad2d TS-3123 Make proxy.config.http.transaction_active_timeout_in overridable
e44ad2d is described below
commit e44ad2d8b2c22af7766909efded485f1d079c522
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Tue May 3 14:14:55 2016 -0600
TS-3123 Make proxy.config.http.transaction_active_timeout_in overridable
This does set the timeout twice though, which is necessary assuming
that we want to retain backward compatibility where the activity
timeout is set way early.
---
doc/admin-guide/files/records.config.en.rst | 1 +
lib/ts/apidefs.h.in | 1 +
plugins/experimental/ts_lua/ts_lua_http_config.c | 2 ++
proxy/InkAPI.cc | 7 +++++++
proxy/InkAPITest.cc | 1 +
proxy/http/HttpConfig.cc | 4 ++--
proxy/http/HttpConfig.h | 4 ++--
proxy/http/HttpSM.cc | 4 ++--
proxy/http/HttpTransact.cc | 3 +++
9 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index 7a1fe4f..77e88cf 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -1153,6 +1153,7 @@ HTTP Connection Timeouts
.. ts:cv:: CONFIG proxy.config.http.transaction_active_timeout_in INT 900
:reloadable:
+ :overridable:
The maximum amount of time Traffic Server can remain connected to a client. If the transfer to the client is not complete before this
timeout expires, then Traffic Server closes the connection.
diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index 4fb0977..77c101e 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -699,6 +699,7 @@ typedef enum {
TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
+ TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
TS_CONFIG_LAST_ENTRY
} TSOverridableConfigKey;
diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 031a2a3..1755fb3 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -118,6 +118,7 @@ typedef enum {
TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT = TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT,
TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT = TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT,
TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS = TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
+ TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN = TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
} TSLuaOverridableConfigKey;
@@ -228,6 +229,7 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT),
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT),
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS),
+ TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN),
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
};
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 6a2ab8b..e7e6a15 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7979,6 +7979,9 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
case TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS:
typ = OVERRIDABLE_TYPE_INT;
ret = &overridableHttpConfig->parent_connect_attempts;
+ case TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN:
+ typ = OVERRIDABLE_TYPE_INT;
+ ret = &overridableHttpConfig->transaction_active_timeout_in;
break;
// This helps avoiding compiler warnings, yet detect unhandled enum members.
case TS_CONFIG_NULL:
@@ -8532,6 +8535,10 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
else if (!strncmp(name, "proxy.config.http.cache.guaranteed_max_lifetime", length))
cnf = TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME;
break;
+ case 'n':
+ if (!strncmp(name, "proxy.config.http.transaction_active_timeout_in", length))
+ cnf = TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN;
+ break;
case 't':
if (!strncmp(name, "proxy.config.http.post_connect_attempts_timeout", length))
cnf = TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT;
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 6aa5e07..8f87248 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7458,6 +7458,7 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
"proxy.config.websocket.active_timeout",
"proxy.config.http.uncacheable_requests_bypass_parent",
"proxy.config.http.parent_proxy.total_connect_attempts",
+ "proxy.config.http.transaction_active_timeout_in",
};
REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 672748e..2627792 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -943,7 +943,7 @@ HttpConfig::startup()
HttpEstablishStaticConfigLongLong(c.oride.websocket_active_timeout, "proxy.config.websocket.active_timeout");
HttpEstablishStaticConfigLongLong(c.oride.websocket_inactive_timeout, "proxy.config.websocket.no_activity_timeout");
- HttpEstablishStaticConfigLongLong(c.transaction_active_timeout_in, "proxy.config.http.transaction_active_timeout_in");
+ HttpEstablishStaticConfigLongLong(c.oride.transaction_active_timeout_in, "proxy.config.http.transaction_active_timeout_in");
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");
@@ -1217,7 +1217,7 @@ 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_active_timeout_in = m_master.oride.transaction_active_timeout_in;
params->oride.transaction_active_timeout_out = m_master.oride.transaction_active_timeout_out;
params->oride.websocket_active_timeout = m_master.oride.websocket_active_timeout;
params->oride.websocket_inactive_timeout = m_master.oride.websocket_inactive_timeout;
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index d2fbbad..38579cb 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -423,6 +423,7 @@ struct OverridableHttpConfigParams {
transaction_no_activity_timeout_in(30),
transaction_no_activity_timeout_out(30),
transaction_active_timeout_out(0),
+ transaction_active_timeout_in(900),
websocket_active_timeout(3600),
websocket_inactive_timeout(600),
origin_max_connections(0),
@@ -602,6 +603,7 @@ struct OverridableHttpConfigParams {
MgmtInt transaction_no_activity_timeout_in;
MgmtInt transaction_no_activity_timeout_out;
MgmtInt transaction_active_timeout_out;
+ MgmtInt transaction_active_timeout_in;
MgmtInt websocket_active_timeout;
MgmtInt websocket_inactive_timeout;
MgmtInt origin_max_connections;
@@ -738,7 +740,6 @@ public:
// connection variables. timeouts are in seconds //
///////////////////////////////////////////////////
MgmtByte session_auth_cache_keep_alive_enabled;
- MgmtInt transaction_active_timeout_in;
MgmtInt accept_no_activity_timeout;
////////////////////////////////////
@@ -943,7 +944,6 @@ inline HttpConfigParams::HttpConfigParams()
url_expansions(NULL),
num_url_expansions(0),
session_auth_cache_keep_alive_enabled(1),
- transaction_active_timeout_in(900),
accept_no_activity_timeout(120),
per_parent_connect_attempts(2),
parent_connect_timeout(30),
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 1024a66..6c74fe0 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -577,8 +577,8 @@ HttpSM::attach_client_session(ProxyClientTransaction *client_vc, IOBufferReader
/////////////////////////
// set up timeouts //
/////////////////////////
- client_vc->set_inactivity_timeout(HRTIME_SECONDS(HttpConfig::m_master.accept_no_activity_timeout));
- client_vc->set_active_timeout(HRTIME_SECONDS(HttpConfig::m_master.transaction_active_timeout_in));
+ client_vc->set_inactivity_timeout(HRTIME_SECONDS(t_state.http_config_param->accept_no_activity_timeout));
+ client_vc->set_active_timeout(HRTIME_SECONDS(t_state.txn_conf->transaction_active_timeout_in));
++reentrancy_count;
// Add our state sm to the sm list
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 9cdf1df..c4a7bd6 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -916,6 +916,9 @@ HttpTransact::EndRemapRequest(State *s)
s->server_info.is_transparent = s->state_machine->ua_session ? s->state_machine->ua_session->is_outbound_transparent() : false;
done:
+ // We now set the active-timeout again, since it might have been changed as part of the remap rules.
+ s->state_machine->ua_session->get_netvc()->set_active_timeout(HRTIME_SECONDS(s->txn_conf->transaction_active_timeout_in));
+
if (is_debug_tag_set("http_chdr_describe") || is_debug_tag_set("http_trans") || is_debug_tag_set("url_rewrite")) {
DebugTxn("http_trans", "After Remapping:");
obj_describe(s->hdr_info.client_request.m_http, 1);
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].