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 2010/11/09 00:46:40 UTC
svn commit: r1032788 - in /trafficserver/traffic/trunk: CHANGES
proxy/mgmt2/web2/WebOverview.cc proxy/mgmt2/web2/WebOverview.h
Author: zwoop
Date: Mon Nov 8 23:46:39 2010
New Revision: 1032788
URL: http://svn.apache.org/viewvc?rev=1032788&view=rev
Log:
TS-519 Fixes for clustering that broke with stats rewrite.
Modified:
trafficserver/traffic/trunk/CHANGES
trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc
trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.h
Modified: trafficserver/traffic/trunk/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/CHANGES?rev=1032788&r1=1032787&r2=1032788&view=diff
==============================================================================
--- trafficserver/traffic/trunk/CHANGES (original)
+++ trafficserver/traffic/trunk/CHANGES Mon Nov 8 23:46:39 2010
@@ -2,6 +2,9 @@
Changes with Apache Traffic Server 2.1.4
+ *) Fixes to clustering, that caused an assert to trigger after the
+ stats changes [TS-519].
+
*) Make the checks when to honor the Content-Length: header less
strict, against origins without Keep-Alive [TS-507].
Modified: trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc?rev=1032788&r1=1032787&r2=1032788&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc (original)
+++ trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc Mon Nov 8 23:46:39 2010
@@ -71,11 +71,15 @@ overviewRecord::overviewRecord(unsigned
node_rec_data.num_recs = 0;
node_rec_data.recs = NULL;
recordArraySize = 0;
+ node_rec_first_ix = 0;
} else {
node_rec_data.num_recs = cpi->node_rec_data.num_recs;
recordArraySize = node_rec_data.num_recs * sizeof(RecRecord);
node_rec_data.recs = new RecRecord[recordArraySize];
memcpy(node_rec_data.recs, cpi->node_rec_data.recs, recordArraySize);
+
+ // Recaculate the old relative index
+ RecGetRecordOrderAndId(node_rec_data.recs[0].name, &node_rec_first_ix, NULL);
}
@@ -192,6 +196,7 @@ overviewRecord::updateStatus(time_t curr
// (remote nodes only)
if (localNode == false) {
memcpy(node_rec_data.recs, cpi->node_rec_data.recs, recordArraySize);
+ RecGetRecordOrderAndId(node_rec_data.recs[0].name, &node_rec_first_ix, NULL);
}
}
@@ -274,9 +279,9 @@ overviewRecord::readCounter(const char *
int rec_status = REC_ERR_OKAY;
int order = -1;
if (localNode == false) {
- // TODO: Not sure if this is correct now after we eliminated the relative order. Do we care?
rec_status = RecGetRecordOrderAndId(name, &order, NULL);
if (rec_status == REC_ERR_OKAY) {
+ order -= node_rec_first_ix; // Offset
ink_release_assert(order < node_rec_data.num_recs);
ink_debug_assert(order < node_rec_data.num_recs);
rec = node_rec_data.recs[order].data.rec_counter;
@@ -300,9 +305,9 @@ overviewRecord::readInteger(const char *
int rec_status = REC_ERR_OKAY;
int order = -1;
if (localNode == false) {
- // TODO: Not sure if this is correct now after we eliminated the relative order. Do we care?
rec_status = RecGetRecordOrderAndId(name, &order, NULL);
if (rec_status == REC_ERR_OKAY) {
+ order -= node_rec_first_ix; // Offset
ink_release_assert(order < node_rec_data.num_recs);
ink_debug_assert(order < node_rec_data.num_recs);
rec = node_rec_data.recs[order].data.rec_int;
@@ -326,9 +331,9 @@ overviewRecord::readFloat(const char *na
int rec_status = REC_ERR_OKAY;
int order = -1;
if (localNode == false) {
- // TODO: Not sure if this is correct now after we eliminated the relative order. Do we care?
rec_status = RecGetRecordOrderAndId(name, &order, NULL);
if (rec_status == REC_ERR_OKAY) {
+ order -= node_rec_first_ix; // Offset
ink_release_assert(order < node_rec_data.num_recs);
ink_debug_assert(order < node_rec_data.num_recs);
rec = node_rec_data.recs[order].data.rec_float;
@@ -352,9 +357,10 @@ overviewRecord::readString(const char *n
int rec_status = REC_ERR_OKAY;
int order = -1;
if (localNode == false) {
- // TODO: Not sure if this is correct now after we eliminated the relative order. Do we care?
rec_status = RecGetRecordOrderAndId(name, &order, NULL);
if (rec_status == REC_ERR_OKAY) {
+ order -= node_rec_first_ix; // Offset
+ printf("LOCAL NAME IS %s\n", node_rec_data.recs[order].name);
ink_release_assert(order < node_rec_data.num_recs);
ink_debug_assert(order < node_rec_data.num_recs);
rec = xstrdup(node_rec_data.recs[order].data.rec_string);
Modified: trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.h?rev=1032788&r1=1032787&r2=1032788&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.h (original)
+++ trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.h Mon Nov 8 23:46:39 2010
@@ -111,9 +111,10 @@ public:
bool varCounterFromName(const char *varName, RecCounter * value);
private:
- RecRecords node_rec_data; // a copy from ClusterPeerInfo
+ RecRecords node_rec_data; // a copy from ClusterPeerInfo
int recordArraySize; // the size of node_data.recs
- overviewRecord(const overviewRecord &);
+ int node_rec_first_ix; // Kludge, but store the first order ix for later use
+ overviewRecord(const overviewRecord &);
};
// information about the entire cluster