From 8d2d0ef53af9854229d944cc5b3691e22fdce73e Mon Sep 17 00:00:00 2001 From: nroskill Date: Mon, 7 Nov 2022 03:38:05 +0000 Subject: [PATCH] add config value range in ERROR LOG --- deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp | 2 +- src/observer/omt/ob_tenant_config.cpp | 7 ++++++- src/share/config/ob_common_config.cpp | 7 ++++++- src/share/config/ob_config.cpp | 9 +++++---- src/share/config/ob_config.h | 16 ++++++++++------ 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp b/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp index 222fdca651..e828358c31 100644 --- a/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp +++ b/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp @@ -72,7 +72,7 @@ void *ObMallocAllocator::alloc(const int64_t size, const oceanbase::lib::ObMemAt } else if (OB_UNLIKELY(0 == inner_attr.tenant_id_) || OB_UNLIKELY(INT64_MAX == inner_attr.tenant_id_)) { ret = OB_INVALID_ARGUMENT; - LOG_ERROR("invalid argument", KCSTRING(lbt()), K(inner_attr.tenant_id_), K(ret)); + LOG_ERROR("invalid argument", K(inner_attr.tenant_id_), K(ret)); } else if (OB_NOT_NULL(allocator = get_tenant_ctx_allocator(inner_attr.tenant_id_, inner_attr.ctx_id_))) { // do nothing } else if (OB_FAIL(create_tenant_ctx_allocator(inner_attr.tenant_id_, inner_attr.ctx_id_))) { diff --git a/src/observer/omt/ob_tenant_config.cpp b/src/observer/omt/ob_tenant_config.cpp index f59670f17f..2a06aa175c 100644 --- a/src/observer/omt/ob_tenant_config.cpp +++ b/src/observer/omt/ob_tenant_config.cpp @@ -402,7 +402,12 @@ int ObTenantConfig::add_extra_config(char *config_str, LOG_WARN("Invalid config value", K(name), K(value), K(ret)); } else if (!(*pp_item)->check()) { ret = OB_INVALID_CONFIG; - LOG_WARN("Invalid config, value out of range", K(name), K(value), K(ret)); + const char* range = (*pp_item)->range(); + if (OB_ISNULL(range) || strlen(range) == 0) { + LOG_ERROR("Invalid config, value out of range", K(name), K(value), K(ret)); + } else { + _LOG_ERROR("Invalid config, value out of %s (for reference only). name=%s, value=%s, ret=%d", range, name, value, ret); + } } else { (*pp_item)->set_version(version); LOG_INFO("Load tenant config succ", K(name), K(value)); diff --git a/src/share/config/ob_common_config.cpp b/src/share/config/ob_common_config.cpp index d55530c372..ab9ee21d6e 100644 --- a/src/share/config/ob_common_config.cpp +++ b/src/share/config/ob_common_config.cpp @@ -121,7 +121,12 @@ int ObCommonConfig::add_extra_config(const char *config_str, LOG_ERROR("Invalid config value", K(name), K(value), K(ret)); } else if (!(*pp_item)->check()) { ret = OB_INVALID_CONFIG; - LOG_ERROR("Invalid config, value out of range", K(name), K(value), K(ret)); + const char* range = (*pp_item)->range(); + if (OB_ISNULL(range) || strlen(range) == 0) { + LOG_ERROR("Invalid config, value out of range", K(name), K(value), K(ret)); + } else { + _LOG_ERROR("Invalid config, value out of %s (for reference only). name=%s, value=%s, ret=%d", range, name, value, ret); + } } else { (*pp_item)->set_version(version); LOG_INFO("Load config succ", K(name), K(value)); diff --git a/src/share/config/ob_config.cpp b/src/share/config/ob_config.cpp index e6b7560b71..367ab8f914 100644 --- a/src/share/config/ob_config.cpp +++ b/src/share/config/ob_config.cpp @@ -54,12 +54,11 @@ const char *log_archive_encryption_algorithm_values[] = // ObConfigItem ObConfigItem::ObConfigItem() : ck_(NULL), version_(0), dumped_version_(0), inited_(false), initial_value_set_(false), - value_updated_(false), value_valid_(false), lock_() + value_updated_(false), value_valid_(false), name_str_(nullptr), info_str_(nullptr), + range_str_(nullptr), lock_() { MEMSET(value_str_, 0, sizeof(value_str_)); MEMSET(value_reboot_str_, 0, sizeof(value_reboot_str_)); - MEMSET(name_str_, 0, sizeof(name_str_)); - MEMSET(info_str_, 0, sizeof(info_str_)); } ObConfigItem::~ObConfigItem() @@ -291,6 +290,7 @@ void ObConfigIntegralItem::init(Scope::ScopeInfo scope_info, const ObParameterAttr attr) { ObConfigItem::init(scope_info, name, def, info, attr); + set_range(range); if (OB_ISNULL(range)) { OB_LOG(ERROR, "Range is NULL"); } else if (!parse_range(range)) { @@ -377,7 +377,7 @@ ObConfigDoubleItem::ObConfigDoubleItem(ObConfigContainer *container, if (OB_LIKELY(NULL != container)) { container->set_refactored(ObConfigStringKey(name), this, 1); } - init(scope_info, name, def, range, info, attr); + init(scope_info, name, def, range, info, attr); } ObConfigDoubleItem::ObConfigDoubleItem(ObConfigContainer *container, @@ -402,6 +402,7 @@ void ObConfigDoubleItem::init(Scope::ScopeInfo scope_info, const ObParameterAttr attr) { ObConfigItem::init(scope_info, name, def, info, attr); + set_range(range); if (OB_ISNULL(range)) { OB_LOG(ERROR, "Range is NULL"); } else if (!parse_range(range)) { diff --git a/src/share/config/ob_config.h b/src/share/config/ob_config.h index 3f57d44ffb..3a3551aa11 100644 --- a/src/share/config/ob_config.h +++ b/src/share/config/ob_config.h @@ -115,13 +115,15 @@ public: } void set_name(const char *name) { - int64_t pos = 0; - (void) databuff_printf(name_str_, sizeof(name_str_), pos, "%s", name); + name_str_ = name; } void set_info(const char *info) { - int64_t pos = 0; - (void) databuff_printf(info_str_, sizeof(info_str_), pos, "%s", info); + info_str_ = info;; + } + void set_range(const char* range) + { + range_str_ = range; } void set_version(int64_t version) { version_ = version; } void set_dumped_version(int64_t version) { dumped_version_ = version; } @@ -144,6 +146,7 @@ public: } const char *name() const { return name_str_; } const char *info() const { return info_str_; } + const char *range() const { return range_str_; } const char *section() const { return attr_.get_section(); } const char *scope() const { return attr_.get_scope(); } @@ -190,8 +193,9 @@ protected: bool value_valid_; char value_str_[OB_MAX_CONFIG_VALUE_LEN]; char value_reboot_str_[OB_MAX_CONFIG_VALUE_LEN]; - char name_str_[OB_MAX_CONFIG_NAME_LEN]; - char info_str_[OB_MAX_CONFIG_INFO_LEN]; + const char* name_str_; + const char* info_str_; + const char* range_str_; common::ObLatch lock_; private: ObParameterAttr attr_;