You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by su...@apache.org on 2016/02/01 19:11:08 UTC
trafficserver git commit: [TS-4160] Add more diagnostic info and
reset CachedReq since it is destroyed in tunnel_handler_cache_read()
Repository: trafficserver
Updated Branches:
refs/heads/ts-4160_1 [created] 32e75adfb
[TS-4160] Add more diagnostic info and reset CachedReq since
it is destroyed in tunnel_handler_cache_read()
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/32e75adf
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/32e75adf
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/32e75adf
Branch: refs/heads/ts-4160_1
Commit: 32e75adfb553c0e37f6a4640ee870715bc676592
Parents: 74d8bb4
Author: Sudheer Vinukonda <su...@yahoo-inc.com>
Authored: Mon Feb 1 18:10:21 2016 +0000
Committer: Sudheer Vinukonda <su...@yahoo-inc.com>
Committed: Mon Feb 1 18:10:21 2016 +0000
----------------------------------------------------------------------
lib/atscppapi/src/Transaction.cc | 28 +++++++++++++-------
.../src/include/atscppapi/Transaction.h | 10 +++----
lib/atscppapi/src/include/utils_internal.h | 20 +++++++-------
lib/atscppapi/src/utils_internal.cc | 16 +++++------
4 files changed, 41 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/32e75adf/lib/atscppapi/src/Transaction.cc
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/Transaction.cc b/lib/atscppapi/src/Transaction.cc
index 1f7cd22..332ba58 100644
--- a/lib/atscppapi/src/Transaction.cc
+++ b/lib/atscppapi/src/Transaction.cc
@@ -428,49 +428,57 @@ private:
} // anonymous namespace
void
-Transaction::initServerRequest()
+Transaction::initServerRequest(TSEvent event)
{
static initializeHandles initializeServerRequestHandles(TSHttpTxnServerReqGet);
initializeServerRequestHandles(state_->txn_, state_->server_request_hdr_buf_, state_->server_request_hdr_loc_, "server request");
- LOG_DEBUG("Initializing server request");
+ LOG_DEBUG("Initializing server request, event %d", event);
state_->server_request_.init(state_->server_request_hdr_buf_, state_->server_request_hdr_loc_);
}
void
-Transaction::initServerResponse()
+Transaction::initServerResponse(TSEvent event)
{
static initializeHandles initializeServerResponseHandles(TSHttpTxnServerRespGet);
initializeServerResponseHandles(state_->txn_, state_->server_response_hdr_buf_, state_->server_response_hdr_loc_,
"server response");
- LOG_DEBUG("Initializing server response");
+ LOG_DEBUG("Initializing server response, event %d", event);
state_->server_response_.init(state_->server_response_hdr_buf_, state_->server_response_hdr_loc_);
}
void
-Transaction::initClientResponse()
+Transaction::initClientResponse(TSEvent event)
{
static initializeHandles initializeClientResponseHandles(TSHttpTxnClientRespGet);
initializeClientResponseHandles(state_->txn_, state_->client_response_hdr_buf_, state_->client_response_hdr_loc_,
"client response");
- LOG_DEBUG("Initializing client response");
+ LOG_DEBUG("Initializing client response, event %d", event);
state_->client_response_.init(state_->client_response_hdr_buf_, state_->client_response_hdr_loc_);
}
void
-Transaction::initCachedRequest()
+Transaction::initCachedRequest(TSEvent event)
{
static initializeHandles initializeCachedRequestHandles(TSHttpTxnCachedReqGet);
+
+ if (event == TS_EVENT_HTTP_TXN_CLOSE) {
+ // CachedRequest is destroyed in tunnel_handler_cache_read
+ state_->cached_request_.reset();
+ LOG_DEBUG("Reset cached request, event %d", event);
+ return;
+ }
+
initializeCachedRequestHandles(state_->txn_, state_->cached_request_hdr_buf_, state_->cached_request_hdr_loc_, "cached request");
- LOG_DEBUG("Initializing cached request");
+ LOG_DEBUG("Initializing cached request, event %d", event);
state_->cached_request_.init(state_->cached_request_hdr_buf_, state_->cached_request_hdr_loc_);
}
void
-Transaction::initCachedResponse()
+Transaction::initCachedResponse(TSEvent event)
{
static initializeHandles initializeCachedResponseHandles(TSHttpTxnCachedRespGet);
initializeCachedResponseHandles(state_->txn_, state_->cached_response_hdr_buf_, state_->cached_response_hdr_loc_,
"cached response");
- LOG_DEBUG("Initializing cached response");
+ LOG_DEBUG("Initializing cached response, event %d", event);
state_->cached_response_.init(state_->cached_response_hdr_buf_, state_->cached_response_hdr_loc_);
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/32e75adf/lib/atscppapi/src/include/atscppapi/Transaction.h
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/include/atscppapi/Transaction.h b/lib/atscppapi/src/include/atscppapi/Transaction.h
index 02b3397..42b980d 100644
--- a/lib/atscppapi/src/include/atscppapi/Transaction.h
+++ b/lib/atscppapi/src/include/atscppapi/Transaction.h
@@ -367,21 +367,21 @@ private:
*
* @private
*/
- void initServerRequest();
+ void initServerRequest(TSEvent event);
/**
* Used to initialize the Response object for the Server.
*
* @private
*/
- void initServerResponse();
+ void initServerResponse(TSEvent event);
/**
* Used to initialize the Response object for the Client.
*
* @private
*/
- void initClientResponse();
+ void initClientResponse(TSEvent event);
/**
* Used to initialize the Request object for the cache.
@@ -389,7 +389,7 @@ private:
* @private
*/
- void initCachedRequest();
+ void initCachedRequest(TSEvent event);
/**
* Used to initialize the Response object for the cache.
@@ -397,7 +397,7 @@ private:
* @private
*/
- void initCachedResponse();
+ void initCachedResponse(TSEvent event);
/**
* Returns a list of TransactionPlugin pointers bound to the current Transaction
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/32e75adf/lib/atscppapi/src/include/utils_internal.h
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/include/utils_internal.h b/lib/atscppapi/src/include/utils_internal.h
index e9dc504..e4b0c68 100644
--- a/lib/atscppapi/src/include/utils_internal.h
+++ b/lib/atscppapi/src/include/utils_internal.h
@@ -72,33 +72,33 @@ namespace utils
}
static void
- initTransactionServerRequest(Transaction &transaction)
+ initTransactionServerRequest(Transaction &transaction, TSEvent event)
{
- transaction.initServerRequest();
+ transaction.initServerRequest(event);
}
static void
- initTransactionServerResponse(Transaction &transaction)
+ initTransactionServerResponse(Transaction &transaction, TSEvent event)
{
- transaction.initServerResponse();
+ transaction.initServerResponse(event);
}
static void
- initTransactionClientResponse(Transaction &transaction)
+ initTransactionClientResponse(Transaction &transaction, TSEvent event)
{
- transaction.initClientResponse();
+ transaction.initClientResponse(event);
}
static void
- initTransactionCachedRequest(Transaction &transaction)
+ initTransactionCachedRequest(Transaction &transaction, TSEvent event)
{
- transaction.initCachedRequest();
+ transaction.initCachedRequest(event);
}
static void
- initTransactionCachedResponse(Transaction &transaction)
+ initTransactionCachedResponse(Transaction &transaction, TSEvent event)
{
- transaction.initCachedResponse();
+ transaction.initCachedResponse(event);
}
static const std::list<TransactionPlugin *> &
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/32e75adf/lib/atscppapi/src/utils_internal.cc
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/utils_internal.cc b/lib/atscppapi/src/utils_internal.cc
index dd7bca4..82a5065 100644
--- a/lib/atscppapi/src/utils_internal.cc
+++ b/lib/atscppapi/src/utils_internal.cc
@@ -44,13 +44,13 @@ const int MAX_TXN_ARG = 15;
const int TRANSACTION_STORAGE_INDEX = MAX_TXN_ARG;
void
-initTransactionHandles(Transaction &transaction)
+initTransactionHandles(Transaction &transaction, TSEvent event)
{
- utils::internal::initTransactionCachedRequest(transaction);
- utils::internal::initTransactionCachedResponse(transaction);
- utils::internal::initTransactionServerRequest(transaction);
- utils::internal::initTransactionServerResponse(transaction);
- utils::internal::initTransactionClientResponse(transaction);
+ utils::internal::initTransactionCachedRequest(transaction, event);
+ utils::internal::initTransactionCachedResponse(transaction, event);
+ utils::internal::initTransactionServerRequest(transaction, event);
+ utils::internal::initTransactionServerResponse(transaction, event);
+ utils::internal::initTransactionClientResponse(transaction, event);
return;
}
@@ -77,10 +77,10 @@ handleTransactionEvents(TSCont cont, TSEvent event, void *edata)
case TS_EVENT_HTTP_SEND_RESPONSE_HDR:
case TS_EVENT_HTTP_READ_CACHE_HDR:
// the buffer handles may be destroyed in the core during redirect follow
- initTransactionHandles(transaction);
+ initTransactionHandles(transaction, event);
break;
case TS_EVENT_HTTP_TXN_CLOSE: { // opening scope to declare plugins variable below
- initTransactionHandles(transaction);
+ initTransactionHandles(transaction, event);
const std::list<TransactionPlugin *> &plugins = utils::internal::getTransactionPlugins(transaction);
for (std::list<TransactionPlugin *>::const_iterator iter = plugins.begin(), end = plugins.end(); iter != end; ++iter) {
shared_ptr<Mutex> trans_mutex = utils::internal::getTransactionPluginMutex(**iter);