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 2022/04/20 21:54:07 UTC
[trafficserver] branch 9.2.x updated: Fix plugin parent_select failover (#8676)
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.2.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.2.x by this push:
new 517061258 Fix plugin parent_select failover (#8676)
517061258 is described below
commit 51706125808f5db886191bd835cadace94214215
Author: Robert O Butts <ro...@users.noreply.github.com>
AuthorDate: Wed Feb 23 09:07:38 2022 -0700
Fix plugin parent_select failover (#8676)
(cherry picked from commit 5d8235cb593ee5c84de306114224f40fdf1d5964)
---
.../experimental/parent_select/parent_select.cc | 138 +++-------------
proxy/http/HttpTransact.cc | 28 ++--
.../pluginTest/parent_select/peer.trace.gold | 176 ++++++++++-----------
.../pluginTest/parent_select/peer2.trace.gold | 54 +++----
4 files changed, 155 insertions(+), 241 deletions(-)
diff --git a/plugins/experimental/parent_select/parent_select.cc b/plugins/experimental/parent_select/parent_select.cc
index 83391e7c5..e3df98393 100644
--- a/plugins/experimental/parent_select/parent_select.cc
+++ b/plugins/experimental/parent_select/parent_select.cc
@@ -47,65 +47,9 @@ struct StrategyTxn {
TSNextHopSelectionStrategy *strategy;
void *txn; // void* because the actual type will depend on the strategy.
int request_count;
- const char *prev_host; // the actually tried host, used when send_request sets the response_action to be the next thing to try.
- size_t prev_host_len;
- in_port_t prev_port;
- bool prev_is_retry;
- bool prev_no_cache;
+ TSResponseAction prev_ra;
};
-int
-handle_send_request(TSHttpTxn txnp, StrategyTxn *strategyTxn)
-{
- TSDebug(PLUGIN_NAME, "handle_send_request calling");
- TSDebug(PLUGIN_NAME, "handle_send_request got strategy '%s'", strategyTxn->strategy->name());
-
- auto strategy = strategyTxn->strategy;
-
- // if (strategyTxn->retry_attempts == 0) {
- // // just did a DoRemap, which means we need to set the response_action of what to do in the event of failure
- // // because a failure might not call read_response (e.g. dns failure)
- // strategyTxn->retry_attempts = 1;
- // TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
- // return TS_SUCCESS;
- // }
-
- // before sending a req, we need to set what to do on failure.
- // Because some failures don't call handle_response before getting to HttpTransact::HandleResponse
- // (e.g. connection failures)
-
- TSResponseAction ra;
- TSHttpTxnResponseActionGet(txnp, &ra);
-
- TSDebug(PLUGIN_NAME, "handle_send_request setting prev %.*s:%d", int(ra.hostname_len), ra.hostname, ra.port);
- strategyTxn->prev_host = ra.hostname;
- strategyTxn->prev_host_len = ra.hostname_len;
- strategyTxn->prev_port = ra.port;
- strategyTxn->prev_is_retry = ra.is_retry;
- strategyTxn->prev_no_cache = ra.no_cache;
-
- strategy->next(txnp, strategyTxn->txn, ra.hostname, ra.hostname_len, ra.port, &ra.hostname, &ra.hostname_len, &ra.port,
- &ra.is_retry, &ra.no_cache);
-
- ra.nextHopExists = ra.hostname_len != 0;
- ra.fail = !ra.nextHopExists; // failed is whether to fail and return to the client. failed=false means to retry the parent we set
- // in the response_action
-
- // we don't know if it's retryable yet, because we don't have a status. So set it retryable if we have something which could be
- // retried. We'll set it retryable per the status in handle_response, and os_dns (which is called on connection failures, and
- // always retryable [notwithstanding num_retries]).
- ra.responseIsRetryable = ra.nextHopExists;
- ra.goDirect = strategy->goDirect();
- ra.parentIsProxy = strategy->parentIsProxy();
-
- TSDebug(PLUGIN_NAME, "handle_send_request setting response_action hostname '%.*s' port %d direct %d proxy %d",
- int(ra.hostname_len), ra.hostname, ra.port, ra.goDirect, ra.parentIsProxy);
- TSHttpTxnResponseActionSet(txnp, &ra);
-
- TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
- return TS_SUCCESS;
-}
-
// mark parents up or down, on failure or successful retry.
void
mark_response(TSHttpTxn txnp, StrategyTxn *strategyTxn, TSHttpStatus status)
@@ -118,17 +62,14 @@ mark_response(TSHttpTxn txnp, StrategyTxn *strategyTxn, TSHttpStatus status)
TSResponseAction ra;
// if the prev_host isn't null, then that was the actual host we tried which needs to be marked down.
- if (strategyTxn->prev_host != nullptr) {
- ra.hostname = strategyTxn->prev_host;
- ra.hostname_len = strategyTxn->prev_host_len;
- ra.port = strategyTxn->prev_port;
- ra.is_retry = strategyTxn->prev_is_retry;
- ra.no_cache = strategyTxn->prev_no_cache;
+ if (strategyTxn->prev_ra.hostname_len != 0) {
+ ra = strategyTxn->prev_ra;
TSDebug(PLUGIN_NAME, "mark_response using prev %.*s:%d", int(ra.hostname_len), ra.hostname, ra.port);
} else {
TSHttpTxnResponseActionGet(txnp, &ra);
TSDebug(PLUGIN_NAME, "mark_response using response_action %.*s:%d", int(ra.hostname_len), ra.hostname, ra.port);
}
+
if (isFailure && strategy->onFailureMarkParentDown(status)) {
if (ra.hostname == nullptr) {
TSError(
@@ -159,13 +100,6 @@ handle_read_response(TSHttpTxn txnp, StrategyTxn *strategyTxn)
TSDebug(PLUGIN_NAME, "handle_read_response got strategy '%s'", strategy->name());
- // increment request count here, not send_request, because we need to consistently increase with os_dns hooks.
- // if we incremented the req count in send_request and not here, that would never be called on DNS failures, but DNS successes
- // would call os_dns and also send_request, resulting in dns failures incrementing the count by 1, and dns successes but http
- // failures would increment by 2. And successes would increment by 2. Hence, the only consistent way to count requests is on
- // read_response and os_dns, and not send_request.
- ++strategyTxn->request_count;
-
TSMBuffer resp;
TSMLoc resp_hdr;
if (TS_SUCCESS != TSHttpTxnServerRespGet(txnp, &resp, &resp_hdr)) {
@@ -193,18 +127,15 @@ handle_read_response(TSHttpTxn txnp, StrategyTxn *strategyTxn)
// Status.
TSResponseAction ra;
TSHttpTxnResponseActionGet(txnp, &ra);
- ra.responseIsRetryable = strategy->responseIsRetryable(strategyTxn->request_count, status);
+ ra.responseIsRetryable = strategy->responseIsRetryable(strategyTxn->request_count - 1, status);
TSHttpTxnResponseActionSet(txnp, &ra);
}
// un-set the "prev" hackery. That only exists for markdown, which we just did.
// The response_action is now the next thing to try, if this was a failure,
// and should now be considered authoritative for everything.
- strategyTxn->prev_host = nullptr;
- strategyTxn->prev_host_len = 0;
- strategyTxn->prev_port = 0;
- strategyTxn->prev_is_retry = false;
- strategyTxn->prev_no_cache = false;
+
+ memset(&strategyTxn->prev_ra, 0, sizeof(TSResponseAction));
TSHandleMLocRelease(resp, TS_NULL_MLOC, resp_hdr);
TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
@@ -216,48 +147,37 @@ handle_os_dns(TSHttpTxn txnp, StrategyTxn *strategyTxn)
{
TSDebug(PLUGIN_NAME, "handle_os_dns calling");
- ++strategyTxn->request_count; // this is called after connection failures. So if we got here, we attempted a request
-
- // This is not called on the first attempt.
- // Thus, if we got called here, we know it's because of a parent failure.
- // So immediately find the next parent, and set the response_action.
+ ++strategyTxn->request_count;
auto strategy = strategyTxn->strategy;
TSDebug(PLUGIN_NAME, "handle_os_dns got strategy '%s'", strategy->name());
- mark_response(txnp, strategyTxn, STATUS_CONNECTION_FAILURE);
-
- // now, we need to figure out, are we the first call after send_response set the response_action as the next-thing-to-try,
- // or are we a subsequent call, and need to actually set a new response_action
-
- if (strategyTxn->prev_host != nullptr) {
- TSDebug(PLUGIN_NAME, "handle_os_dns had prev, keeping existing response_action and un-setting prev");
- // if strategyTxn->prev_host exists, this is the very first call after send_response set the response_action to the next thing
- // to try. and no handle_response was called in-between (because it was a connection or dns failure) So keep that, and set
- // prev_host=nullptr (so we get a new response_action the next time we're called)
- strategyTxn->prev_host = nullptr;
- strategyTxn->prev_port = 0;
- strategyTxn->prev_is_retry = false;
- strategyTxn->prev_no_cache = false;
- TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
- return TS_SUCCESS;
+ const TSServerState server_state = TSHttpTxnServerStateGet(txnp);
+ if (server_state == TS_SRVSTATE_CONNECTION_ERROR || server_state == TS_SRVSTATE_INACTIVE_TIMEOUT) {
+ mark_response(txnp, strategyTxn, STATUS_CONNECTION_FAILURE);
}
TSDebug(PLUGIN_NAME, "handle_os_dns had no prev, setting new response_action");
+ {
+ TSResponseAction ra;
+ TSHttpTxnResponseActionGet(txnp, &ra);
+ strategyTxn->prev_ra = ra;
+ }
+
TSResponseAction ra;
- memset(&ra, 0, sizeof(TSResponseAction)); // because {0} gives a C++ warning. Ugh.
- const char *const exclude_host = nullptr;
- const size_t exclude_host_len = 0;
- const in_port_t exclude_port = 0;
+ memset(&ra, 0, sizeof(TSResponseAction));
+ const char *const exclude_host = strategyTxn->prev_ra.hostname;
+ const size_t exclude_host_len = strategyTxn->prev_ra.hostname_len;
+ const in_port_t exclude_port = strategyTxn->prev_ra.port;
strategy->next(txnp, strategyTxn->txn, exclude_host, exclude_host_len, exclude_port, &ra.hostname, &ra.hostname_len, &ra.port,
&ra.is_retry, &ra.no_cache);
ra.fail = ra.hostname == nullptr; // failed is whether to immediately fail and return the client a 502. In this case: whether or
// not we found another parent.
ra.nextHopExists = ra.hostname_len != 0;
- ra.responseIsRetryable = strategy->responseIsRetryable(strategyTxn->request_count, STATUS_CONNECTION_FAILURE);
+ ra.responseIsRetryable = strategy->responseIsRetryable(strategyTxn->request_count - 1, STATUS_CONNECTION_FAILURE);
ra.goDirect = strategy->goDirect();
ra.parentIsProxy = strategy->parentIsProxy();
TSDebug(PLUGIN_NAME, "handle_os_dns setting response_action hostname '%.*s' port %d direct %d proxy %d is_retry %d exists %d",
@@ -298,14 +218,8 @@ handle_hook(TSCont contp, TSEvent event, void *edata)
TSDebug(PLUGIN_NAME, "handle_hook got strategy '%s'", strategyTxn->strategy->name());
switch (event) {
- // case TS_EVENT_HTTP_READ_REQUEST_HDR:
- // return handle_read_request(txnp, strategyTxn);
- case TS_EVENT_HTTP_SEND_REQUEST_HDR:
- return handle_send_request(txnp, strategyTxn);
case TS_EVENT_HTTP_READ_RESPONSE_HDR:
return handle_read_response(txnp, strategyTxn);
- // case TS_EVENT_HTTP_SEND_RESPONSE_HDR:
- // return handle_send_response(txnp, strategyTxn);
case TS_EVENT_HTTP_OS_DNS:
return handle_os_dns(txnp, strategyTxn);
case TS_EVENT_HTTP_TXN_CLOSE:
@@ -417,16 +331,10 @@ TSRemapDoRemap(void *ih, TSHttpTxn txnp, TSRemapRequestInfo *rri)
strategyTxn->strategy = strategy;
strategyTxn->txn = strategy->newTxn();
strategyTxn->request_count = 0;
- strategyTxn->prev_host = nullptr;
- strategyTxn->prev_port = 0;
- strategyTxn->prev_is_retry = false;
- strategyTxn->prev_no_cache = false;
+ memset(&strategyTxn->prev_ra, 0, sizeof(TSResponseAction));
TSContDataSet(cont, (void *)strategyTxn);
- // TSHttpTxnHookAdd(txnp, TS_HTTP_READ_REQUEST_HDR_HOOK, cont);
- TSHttpTxnHookAdd(txnp, TS_HTTP_SEND_REQUEST_HDR_HOOK, cont);
TSHttpTxnHookAdd(txnp, TS_HTTP_READ_RESPONSE_HDR_HOOK, cont);
- // TSHttpTxnHookAdd(txnp, TS_HTTP_SEND_RESPONSE_HDR_HOOK, cont);
TSHttpTxnHookAdd(txnp, TS_HTTP_OS_DNS_HOOK, cont);
TSHttpTxnHookAdd(txnp, TS_HTTP_TXN_CLOSE_HOOK, cont);
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 0787e03c9..0244a9f7c 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -1769,11 +1769,21 @@ HttpTransact::HandleApiErrorJump(State *s)
return;
}
-// PPDNSLookupAPICall does an API callout, then calls PPDNSLookup
+// PPDNSLookupAPICall does an API callout if a plugin set the response_action,
+// then calls PPDNSLookup.
+// This is to preserve plugin hook calling behavior pre-9, which didn't call
+// the TS_HTTP_OS_DNS_HOOK on PPDNSLookup.
+// Since response_action is new in 9, only new plugins intentionally setting
+// it will have the new behavior of TS_HTTP_OS_DNS_HOOK firing on PPDNSLookup.
void
HttpTransact::PPDNSLookupAPICall(State *s)
{
- TRANSACT_RETURN(SM_ACTION_API_OS_DNS, PPDNSLookup);
+ TxnDebug("http_trans", "[HttpTransact::PPDNSLookupAPICall] response_action.handled %d", s->response_action.handled);
+ if (!s->response_action.handled) {
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookup);
+ } else {
+ TRANSACT_RETURN(SM_ACTION_API_OS_DNS, PPDNSLookup);
+ }
}
///////////////////////////////////////////////////////////////////////////////
@@ -1814,11 +1824,7 @@ HttpTransact::PPDNSLookup(State *s)
if (!s->current.server->dst_addr.isValid()) {
if (s->current.request_to == PARENT_PROXY) {
- if (!s->response_action.handled) {
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookup);
- } else {
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookupAPICall);
- }
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookupAPICall);
} else if (s->parent_result.result == PARENT_DIRECT && s->http_config_param->no_dns_forward_to_parent != 1) {
// We ran out of parents but parent configuration allows us to go to Origin Server directly
CallOSDNSLookup(s);
@@ -2259,7 +2265,7 @@ HttpTransact::LookupSkipOpenServer(State *s)
find_server_and_update_current_info(s);
if (s->current.request_to == PARENT_PROXY) {
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookup);
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookupAPICall);
} else if (s->parent_result.result == PARENT_FAIL) {
handle_parent_died(s);
return;
@@ -2966,7 +2972,7 @@ HttpTransact::HandleCacheOpenReadHit(State *s)
ink_assert(s->pending_work == nullptr);
s->pending_work = issue_revalidate;
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookup);
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookupAPICall);
} else if (s->current.request_to == ORIGIN_SERVER) {
return CallOSDNSLookup(s);
} else {
@@ -3393,7 +3399,7 @@ HttpTransact::HandleCacheOpenReadMiss(State *s)
return CallOSDNSLookup(s);
}
if (s->current.request_to == PARENT_PROXY) {
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, HttpTransact::PPDNSLookup);
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, HttpTransact::PPDNSLookupAPICall);
} else {
handle_parent_died(s);
return;
@@ -3762,7 +3768,7 @@ HttpTransact::handle_response_from_parent(State *s)
switch (next_lookup) {
case PARENT_PROXY:
ink_assert(s->current.request_to == PARENT_PROXY);
- TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookup);
+ TRANSACT_RETURN(SM_ACTION_DNS_LOOKUP, PPDNSLookupAPICall);
break;
case ORIGIN_SERVER:
// Next lookup is Origin Server, try DNS for Origin Server
diff --git a/tests/gold_tests/pluginTest/parent_select/peer.trace.gold b/tests/gold_tests/pluginTest/parent_select/peer.trace.gold
index 4c1810eeb..85da76959 100644
--- a/tests/gold_tests/pluginTest/parent_select/peer.trace.gold
+++ b/tests/gold_tests/pluginTest/parent_select/peer.trace.gold
@@ -1,10 +1,10 @@
trace_peer0.log:+++++++++ Incoming Request +++++++++
trace_peer0.log:GET http://dummy.com/obj0 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
-trace_peer0.log:+++++++++ Proxy's Request +++++++++
-trace_peer0.log:GET http://not_used/obj0 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer0.log:+++++++++ Proxy's Request +++++++++
+trace_peer0.log:GET http://not_used/obj0 HTTP/1.1
trace_peer0.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer0.log:GET http://not_used/obj0 HTTP/1.1
trace_peer0.log:+++++++++ Incoming O.S. Response +++++++++
@@ -18,10 +18,10 @@ trace_peer0.log:HTTP/1.1 200 OK
trace_peer0.log:+++++++++ Incoming Request +++++++++
trace_peer0.log:GET http://not_used/obj7 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer0.log:+++++++++ Proxy's Request +++++++++
-trace_peer0.log:GET http://also_not_used/obj7 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer0.log:+++++++++ Proxy's Request +++++++++
+trace_peer0.log:GET http://also_not_used/obj7 HTTP/1.1
trace_peer0.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer0.log:GET http://also_not_used/obj7 HTTP/1.1
trace_peer0.log:+++++++++ Incoming O.S. Response +++++++++
@@ -35,10 +35,10 @@ trace_peer0.log:HTTP/1.1 200 OK
trace_peer0.log:+++++++++ Incoming Request +++++++++
trace_peer0.log:GET http://dummy.com/obj8 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer6
-trace_peer0.log:+++++++++ Proxy's Request +++++++++
-trace_peer0.log:GET http://not_used/obj8 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer0.log:+++++++++ Proxy's Request +++++++++
+trace_peer0.log:GET http://not_used/obj8 HTTP/1.1
trace_peer0.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer0.log:GET http://not_used/obj8 HTTP/1.1
trace_peer0.log:+++++++++ Incoming O.S. Response +++++++++
@@ -82,10 +82,10 @@ trace_peer0.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://dummy.com/obj1 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
-trace_peer1.log:+++++++++ Proxy's Request +++++++++
-trace_peer1.log:GET http://not_used/obj1 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer1.log:+++++++++ Proxy's Request +++++++++
+trace_peer1.log:GET http://not_used/obj1 HTTP/1.1
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://not_used/obj1 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -99,10 +99,10 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://dummy.com/obj9 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer1.log:+++++++++ Proxy's Request +++++++++
-trace_peer1.log:GET http://not_used/obj9 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer1.log:+++++++++ Proxy's Request +++++++++
+trace_peer1.log:GET http://not_used/obj9 HTTP/1.1
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://not_used/obj9 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -116,10 +116,10 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://not_used/obj10 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
-trace_peer1.log:+++++++++ Proxy's Request +++++++++
-trace_peer1.log:GET http://also_not_used/obj10 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer1.log:+++++++++ Proxy's Request +++++++++
+trace_peer1.log:GET http://also_not_used/obj10 HTTP/1.1
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://also_not_used/obj10 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -133,10 +133,10 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://dummy.com/obj3 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer1.log:+++++++++ Proxy's Request +++++++++
-trace_peer1.log:GET http://not_used/obj3 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer1.log:+++++++++ Proxy's Request +++++++++
+trace_peer1.log:GET http://not_used/obj3 HTTP/1.1
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://not_used/obj3 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -160,10 +160,10 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://dummy.com/obj11 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer1.log:+++++++++ Proxy's Request +++++++++
-trace_peer1.log:GET http://not_used/obj11 HTTP/1.1
[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer1.log:+++++++++ Proxy's Request +++++++++
+trace_peer1.log:GET http://not_used/obj11 HTTP/1.1
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://not_used/obj11 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -177,10 +177,10 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://dummy.com/obj2 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://not_used/obj2 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://not_used/obj2 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://not_used/obj2 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -194,10 +194,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://not_used/obj3 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://also_not_used/obj3 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://also_not_used/obj3 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://also_not_used/obj3 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -211,10 +211,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://not_used/obj4 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://also_not_used/obj4 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://also_not_used/obj4 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://also_not_used/obj4 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -228,10 +228,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://not_used/obj5 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://also_not_used/obj5 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://also_not_used/obj5 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://also_not_used/obj5 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -245,10 +245,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://not_used/obj6 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://also_not_used/obj6 HTTP/1.1
[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://also_not_used/obj6 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://also_not_used/obj6 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -262,10 +262,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://dummy.com/obj10 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer1
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://not_used/obj10 HTTP/1.1
[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://not_used/obj10 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://not_used/obj10 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -279,10 +279,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://not_used/obj12 HTTP/1.1
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://also_not_used/obj12 HTTP/1.1
[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://also_not_used/obj12 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://also_not_used/obj12 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -316,10 +316,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://dummy.com/obj6 HTTP/1.1
[9] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://not_used/obj6 HTTP/1.1
[9] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[9] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://not_used/obj6 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://not_used/obj6 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -333,10 +333,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://dummy.com/obj14 HTTP/1.1
[10] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
-trace_peer2.log:+++++++++ Proxy's Request +++++++++
-trace_peer2.log:GET http://not_used/obj14 HTTP/1.1
[10] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[10] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer2.log:+++++++++ Proxy's Request +++++++++
+trace_peer2.log:GET http://not_used/obj14 HTTP/1.1
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://not_used/obj14 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -350,10 +350,10 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://not_used/obj0 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://also_not_used/obj0 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://also_not_used/obj0 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://also_not_used/obj0 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -367,10 +367,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://dummy.com/obj3 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://not_used/obj3 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://not_used/obj3 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://not_used/obj3 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -384,10 +384,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://dummy.com/obj11 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://not_used/obj11 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://not_used/obj11 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://not_used/obj11 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -401,10 +401,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://not_used/obj13 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://also_not_used/obj13 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://also_not_used/obj13 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://also_not_used/obj13 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -418,10 +418,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://not_used/obj15 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://also_not_used/obj15 HTTP/1.1
[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream1
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://also_not_used/obj15 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://also_not_used/obj15 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -435,10 +435,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://dummy.com/obj1 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://not_used/obj1 HTTP/1.1
[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://not_used/obj1 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://not_used/obj1 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -452,10 +452,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://dummy.com/obj9 HTTP/1.1
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer3.log:+++++++++ Proxy's Request +++++++++
-trace_peer3.log:GET http://not_used/obj9 HTTP/1.1
[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer3.log:+++++++++ Proxy's Request +++++++++
+trace_peer3.log:GET http://not_used/obj9 HTTP/1.1
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://not_used/obj9 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -489,10 +489,10 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer4.log:+++++++++ Incoming Request +++++++++
trace_peer4.log:GET http://dummy.com/obj4 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer4.log:+++++++++ Proxy's Request +++++++++
-trace_peer4.log:GET http://not_used/obj4 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer4.log:+++++++++ Proxy's Request +++++++++
+trace_peer4.log:GET http://not_used/obj4 HTTP/1.1
trace_peer4.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer4.log:GET http://not_used/obj4 HTTP/1.1
trace_peer4.log:+++++++++ Incoming O.S. Response +++++++++
@@ -506,10 +506,10 @@ trace_peer4.log:HTTP/1.1 200 OK
trace_peer4.log:+++++++++ Incoming Request +++++++++
trace_peer4.log:GET http://dummy.com/obj12 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer4.log:+++++++++ Proxy's Request +++++++++
-trace_peer4.log:GET http://not_used/obj12 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer4.log:+++++++++ Proxy's Request +++++++++
+trace_peer4.log:GET http://not_used/obj12 HTTP/1.1
trace_peer4.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer4.log:GET http://not_used/obj12 HTTP/1.1
trace_peer4.log:+++++++++ Incoming O.S. Response +++++++++
@@ -543,10 +543,10 @@ trace_peer4.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://not_used/obj1 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://also_not_used/obj1 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://also_not_used/obj1 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://also_not_used/obj1 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -560,10 +560,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://dummy.com/obj5 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://not_used/obj5 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://not_used/obj5 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://not_used/obj5 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -577,10 +577,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://dummy.com/obj13 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://not_used/obj13 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://not_used/obj13 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://not_used/obj13 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -594,10 +594,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://not_used/obj14 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://also_not_used/obj14 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream1
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://also_not_used/obj14 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://also_not_used/obj14 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -621,10 +621,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://dummy.com/obj7 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer0
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://not_used/obj7 HTTP/1.1
[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://not_used/obj7 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://not_used/obj7 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -648,10 +648,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://dummy.com/obj15 HTTP/1.1
[7] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
-trace_peer5.log:+++++++++ Proxy's Request +++++++++
-trace_peer5.log:GET http://not_used/obj15 HTTP/1.1
[7] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[7] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer5.log:+++++++++ Proxy's Request +++++++++
+trace_peer5.log:GET http://not_used/obj15 HTTP/1.1
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://not_used/obj15 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -665,10 +665,10 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://dummy.com/obj6 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer6.log:+++++++++ Proxy's Request +++++++++
-trace_peer6.log:GET http://not_used/obj6 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer6.log:+++++++++ Proxy's Request +++++++++
+trace_peer6.log:GET http://not_used/obj6 HTTP/1.1
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://not_used/obj6 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -682,10 +682,10 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://not_used/obj8 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer6.log:+++++++++ Proxy's Request +++++++++
-trace_peer6.log:GET http://also_not_used/obj8 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream3
+trace_peer6.log:+++++++++ Proxy's Request +++++++++
+trace_peer6.log:GET http://also_not_used/obj8 HTTP/1.1
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://also_not_used/obj8 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -699,10 +699,10 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://dummy.com/obj14 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
-trace_peer6.log:+++++++++ Proxy's Request +++++++++
-trace_peer6.log:GET http://not_used/obj14 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
+trace_peer6.log:+++++++++ Proxy's Request +++++++++
+trace_peer6.log:GET http://not_used/obj14 HTTP/1.1
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://not_used/obj14 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -716,10 +716,10 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://dummy.com/obj2 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
-trace_peer6.log:+++++++++ Proxy's Request +++++++++
-trace_peer6.log:GET http://not_used/obj2 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer6.log:+++++++++ Proxy's Request +++++++++
+trace_peer6.log:GET http://not_used/obj2 HTTP/1.1
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://not_used/obj2 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -733,10 +733,10 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://dummy.com/obj10 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_peer1
-trace_peer6.log:+++++++++ Proxy's Request +++++++++
-trace_peer6.log:GET http://not_used/obj10 HTTP/1.1
[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer6.log:+++++++++ Proxy's Request +++++++++
+trace_peer6.log:GET http://not_used/obj10 HTTP/1.1
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://not_used/obj10 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -750,10 +750,10 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://not_used/obj2 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://also_not_used/obj2 HTTP/1.1
[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://also_not_used/obj2 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://also_not_used/obj2 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -767,10 +767,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://dummy.com/obj7 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer0
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://not_used/obj7 HTTP/1.1
[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://not_used/obj7 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://not_used/obj7 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -784,10 +784,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://not_used/obj9 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream0
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://also_not_used/obj9 HTTP/1.1
[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://also_not_used/obj9 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://also_not_used/obj9 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -801,10 +801,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://not_used/obj11 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://also_not_used/obj11 HTTP/1.1
[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://also_not_used/obj11 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://also_not_used/obj11 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -818,10 +818,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://dummy.com/obj15 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://not_used/obj15 HTTP/1.1
[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream4
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://not_used/obj15 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://not_used/obj15 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -845,10 +845,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://dummy.com/obj5 HTTP/1.1
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://not_used/obj5 HTTP/1.1
[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream5
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://not_used/obj5 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://not_used/obj5 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -882,10 +882,10 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://dummy.com/obj13 HTTP/1.1
[9] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
-trace_peer7.log:+++++++++ Proxy's Request +++++++++
-trace_peer7.log:GET http://not_used/obj13 HTTP/1.1
[9] not firstcall, line_number: 0, result: PARENT_SPECIFIED
[9] state->result: PARENT_SPECIFIED Chosen parent: ts_upstream2
+trace_peer7.log:+++++++++ Proxy's Request +++++++++
+trace_peer7.log:GET http://not_used/obj13 HTTP/1.1
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://not_used/obj13 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
diff --git a/tests/gold_tests/pluginTest/parent_select/peer2.trace.gold b/tests/gold_tests/pluginTest/parent_select/peer2.trace.gold
index 47eee1d83..784cf5ed7 100644
--- a/tests/gold_tests/pluginTest/parent_select/peer2.trace.gold
+++ b/tests/gold_tests/pluginTest/parent_select/peer2.trace.gold
@@ -1,9 +1,9 @@
trace_peer0.log:+++++++++ Incoming Request +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj0 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
+[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer0.log:+++++++++ Proxy's Request +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj0 HTTP/1.1
-[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer0.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj0 HTTP/1.1
trace_peer0.log:+++++++++ Incoming O.S. Response +++++++++
@@ -31,9 +31,9 @@ trace_peer0.log:HTTP/1.1 200 OK
trace_peer0.log:+++++++++ Incoming Request +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj8 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer6
+[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer0.log:+++++++++ Proxy's Request +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj8 HTTP/1.1
-[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer0.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer0.log:GET http://ts_upstream0:UP_PORT0/obj8 HTTP/1.1
trace_peer0.log:+++++++++ Incoming O.S. Response +++++++++
@@ -76,9 +76,9 @@ trace_peer0.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
+[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
-[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -92,9 +92,9 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
-[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -122,9 +122,9 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
-[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -147,9 +147,9 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer1.log:+++++++++ Incoming Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
-[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer1.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer1.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
trace_peer1.log:+++++++++ Incoming O.S. Response +++++++++
@@ -163,9 +163,9 @@ trace_peer1.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
-[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -235,9 +235,9 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer1
+[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
-[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -292,9 +292,9 @@ trace_peer2.log:HTTP/1.1 200 OK
trace_peer2.log:+++++++++ Incoming Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
[10] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
+[10] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
-[10] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer2.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer2.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
trace_peer2.log:+++++++++ Incoming O.S. Response +++++++++
@@ -322,9 +322,9 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
-[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj3 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -338,9 +338,9 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
-[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj11 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -382,9 +382,9 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
+[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
-[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj1 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -398,9 +398,9 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer3.log:+++++++++ Incoming Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
-[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer3.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer3.log:GET http://ts_upstream0:UP_PORT0/obj9 HTTP/1.1
trace_peer3.log:+++++++++ Incoming O.S. Response +++++++++
@@ -432,9 +432,9 @@ trace_peer3.log:HTTP/1.1 200 OK
trace_peer4.log:+++++++++ Incoming Request +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj4 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer4.log:+++++++++ Proxy's Request +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj4 HTTP/1.1
-[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer4.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj4 HTTP/1.1
trace_peer4.log:+++++++++ Incoming O.S. Response +++++++++
@@ -448,9 +448,9 @@ trace_peer4.log:HTTP/1.1 200 OK
trace_peer4.log:+++++++++ Incoming Request +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj12 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer4.log:+++++++++ Proxy's Request +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj12 HTTP/1.1
-[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer4.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer4.log:GET http://ts_upstream0:UP_PORT0/obj12 HTTP/1.1
trace_peer4.log:+++++++++ Incoming O.S. Response +++++++++
@@ -498,9 +498,9 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
-[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -514,9 +514,9 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
+[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
-[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -553,9 +553,9 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
[5] state->result: PARENT_SPECIFIED Chosen parent: ts_peer0
+[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
-[5] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -578,9 +578,9 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer5.log:+++++++++ Incoming Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
[7] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
+[7] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
-[7] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer5.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer5.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
trace_peer5.log:+++++++++ Incoming O.S. Response +++++++++
@@ -594,9 +594,9 @@ trace_peer5.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj6 HTTP/1.1
[0] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj6 HTTP/1.1
-[0] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj6 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -624,9 +624,9 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
[2] state->result: PARENT_SPECIFIED Chosen parent: ts_peer5
+[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
-[2] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj14 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -640,9 +640,9 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
[3] state->result: PARENT_SPECIFIED Chosen parent: ts_peer7
+[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
-[3] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj2 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -656,9 +656,9 @@ trace_peer6.log:HTTP/1.1 200 OK
trace_peer6.log:+++++++++ Incoming Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_peer1
+[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
-[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer6.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer6.log:GET http://ts_upstream0:UP_PORT0/obj10 HTTP/1.1
trace_peer6.log:+++++++++ Incoming O.S. Response +++++++++
@@ -686,9 +686,9 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
[1] state->result: PARENT_SPECIFIED Chosen parent: ts_peer0
+[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
-[1] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj7 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -730,9 +730,9 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
[4] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
+[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
-[4] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj15 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -755,9 +755,9 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
[6] state->result: PARENT_SPECIFIED Chosen parent: ts_peer2
+[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
-[6] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj5 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++
@@ -789,9 +789,9 @@ trace_peer7.log:HTTP/1.1 200 OK
trace_peer7.log:+++++++++ Incoming Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
[9] state->result: PARENT_SPECIFIED Chosen parent: ts_peer3
+[9] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
-[9] not firstcall, line_number: 0, result: PARENT_SPECIFIED
trace_peer7.log:+++++++++ Proxy's Request after hooks +++++++++
trace_peer7.log:GET http://ts_upstream0:UP_PORT0/obj13 HTTP/1.1
trace_peer7.log:+++++++++ Incoming O.S. Response +++++++++