You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by du...@apache.org on 2018/08/17 14:13:15 UTC
[trafficserver] branch master updated: make sure "traffic_ctl
config reload" only reloads configs that changed
This is an automated email from the ASF dual-hosted git repository.
duke8253 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 8fd7ee0 make sure "traffic_ctl config reload" only reloads configs that changed
8fd7ee0 is described below
commit 8fd7ee003020cb8c064c5b4702f543148a183a9a
Author: Fei Deng <du...@gmail.com>
AuthorDate: Thu Aug 16 15:08:33 2018 -0500
make sure "traffic_ctl config reload" only reloads configs that changed
---
lib/records/P_RecCore.cc | 19 +++++++++++--------
lib/records/RecUtils.cc | 32 +++++++++++++++-----------------
2 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/lib/records/P_RecCore.cc b/lib/records/P_RecCore.cc
index 11d800c..4a8a928 100644
--- a/lib/records/P_RecCore.cc
+++ b/lib/records/P_RecCore.cc
@@ -377,22 +377,25 @@ RecSetRecord(RecT rec_type, const char *name, RecDataT data_type, RecData *data,
if ((data_type != RECD_NULL) && (r1->data_type != data_type)) {
err = REC_ERR_FAIL;
} else {
+ bool rec_updated_p = false;
if (data_type == RECD_NULL) {
// If the caller didn't know the data type, they gave us a string
// and we should convert based on the record's data type.
ink_release_assert(data->rec_string != nullptr);
- RecDataSetFromString(r1->data_type, &(r1->data), data->rec_string);
+ rec_updated_p = RecDataSetFromString(r1->data_type, &(r1->data), data->rec_string);
} else {
- RecDataSet(data_type, &(r1->data), data);
+ rec_updated_p = RecDataSet(data_type, &(r1->data), data);
}
- r1->sync_required = REC_SYNC_REQUIRED;
- if (inc_version) {
- r1->sync_required |= REC_INC_CONFIG_VERSION;
- }
+ if (rec_updated_p) {
+ r1->sync_required = REC_SYNC_REQUIRED;
+ if (inc_version) {
+ r1->sync_required |= REC_INC_CONFIG_VERSION;
+ }
- if (REC_TYPE_IS_CONFIG(r1->rec_type)) {
- r1->config_meta.update_required = REC_UPDATE_REQUIRED;
+ if (REC_TYPE_IS_CONFIG(r1->rec_type)) {
+ r1->config_meta.update_required = REC_UPDATE_REQUIRED;
+ }
}
if (REC_TYPE_IS_STAT(r1->rec_type) && (data_raw != nullptr)) {
diff --git a/lib/records/RecUtils.cc b/lib/records/RecUtils.cc
index 640f920..1f8637f 100644
--- a/lib/records/RecUtils.cc
+++ b/lib/records/RecUtils.cc
@@ -326,36 +326,36 @@ RecDataDiv(RecDataT type, RecData left, RecData right)
bool
RecDataSetFromInt64(RecDataT data_type, RecData *data_dst, int64_t data_int64)
{
+ RecData data_src;
+
switch (data_type) {
#if defined(STAT_PROCESSOR)
case RECD_FX:
#endif
case RECD_INT:
- data_dst->rec_int = data_int64;
+ data_src.rec_int = data_int64;
break;
#if defined(STAT_PROCESSOR)
case RECD_CONST:
#endif
case RECD_FLOAT:
- data_dst->rec_float = (float)(data_int64);
+ data_src.rec_float = (float)(data_int64);
break;
case RECD_STRING: {
char buf[32 + 1];
-
- ats_free(data_dst->rec_string);
snprintf(buf, 32, "%" PRId64 "", data_int64);
- data_dst->rec_string = ats_strdup(buf);
+ data_src.rec_string = ats_strdup(buf);
break;
}
case RECD_COUNTER:
- data_dst->rec_counter = data_int64;
+ data_src.rec_counter = data_int64;
break;
default:
ink_assert(!"Unexpected RecD type");
return false;
}
- return true;
+ return RecDataSet(data_type, data_dst, &data_src);
}
//-------------------------------------------------------------------------
@@ -364,36 +364,36 @@ RecDataSetFromInt64(RecDataT data_type, RecData *data_dst, int64_t data_int64)
bool
RecDataSetFromFloat(RecDataT data_type, RecData *data_dst, float data_float)
{
+ RecData data_src;
+
switch (data_type) {
#if defined(STAT_PROCESSOR)
case RECD_FX:
#endif
case RECD_INT:
- data_dst->rec_int = (RecInt)data_float;
+ data_src.rec_int = (RecInt)data_float;
break;
#if defined(STAT_PROCESSOR)
case RECD_CONST:
#endif
case RECD_FLOAT:
- data_dst->rec_float = (float)(data_float);
+ data_src.rec_float = (float)(data_float);
break;
case RECD_STRING: {
char buf[32 + 1];
-
- ats_free(data_dst->rec_string);
snprintf(buf, 32, "%f", data_float);
- data_dst->rec_string = ats_strdup(buf);
+ data_src.rec_string = ats_strdup(buf);
break;
}
case RECD_COUNTER:
- data_dst->rec_counter = (RecCounter)data_float;
+ data_src.rec_counter = (RecCounter)data_float;
break;
default:
ink_assert(!"Unexpected RecD type");
return false;
}
- return true;
+ return RecDataSet(data_type, data_dst, &data_src);
}
//-------------------------------------------------------------------------
@@ -402,7 +402,6 @@ RecDataSetFromFloat(RecDataT data_type, RecData *data_dst, float data_float)
bool
RecDataSetFromString(RecDataT data_type, RecData *data_dst, const char *data_string)
{
- bool rec_set;
RecData data_src;
switch (data_type) {
@@ -433,7 +432,6 @@ RecDataSetFromString(RecDataT data_type, RecData *data_dst, const char *data_str
ink_assert(!"Unexpected RecD type");
return false;
}
- rec_set = RecDataSet(data_type, data_dst, &data_src);
- return rec_set;
+ return RecDataSet(data_type, data_dst, &data_src);
}