[CP] build_version buffer_size
This commit is contained in:
@ -119,7 +119,7 @@ int ObHeartBeatProcess::init_lease_request(ObLeaseRequest &lease_request)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
common::ObArray<std::pair<uint64_t, uint64_t> > max_stored_versions;
|
||||
|
||||
lease_request.reset();
|
||||
if (OB_UNLIKELY(!inited_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("not init", KR(ret), K(inited_));
|
||||
@ -135,13 +135,14 @@ int ObHeartBeatProcess::init_lease_request(ObLeaseRequest &lease_request)
|
||||
LOG_WARN("fail to set lease request max stored key versions",
|
||||
KR(ret), K(lease_request), K(max_stored_versions));
|
||||
#endif
|
||||
} else if (OB_FAIL(get_package_and_svn(lease_request.build_version_, sizeof(lease_request.build_version_)))) {
|
||||
LOG_WARN("fail to get build_version", KR(ret));
|
||||
} else {
|
||||
lease_request.request_lease_time_ = 0; // this is not a valid member
|
||||
lease_request.version_ = ObLeaseRequest::LEASE_VERSION;
|
||||
lease_request.zone_ = gctx_.config_->zone.str();
|
||||
lease_request.server_ = gctx_.self_addr();
|
||||
lease_request.sql_port_ = gctx_.config_->mysql_port;
|
||||
get_package_and_svn(lease_request.build_version_, sizeof(lease_request.build_version_));
|
||||
OTC_MGR.get_lease_request(lease_request);
|
||||
lease_request.start_service_time_ = gctx_.start_service_time_;
|
||||
lease_request.ssl_key_expired_time_ = gctx_.ssl_key_expired_time_;
|
||||
|
@ -1536,14 +1536,15 @@ int ObService::check_server_for_adding_server(
|
||||
KR(ret), K(arg), K(sys_tenant_data_version), K(arg.get_sys_tenant_data_version()));
|
||||
} else {
|
||||
bool server_empty = false;
|
||||
char build_version[common::OB_SERVER_VERSION_LENGTH] = {'\0'};
|
||||
if (OB_FAIL(check_server_empty(server_empty))) {
|
||||
LOG_WARN("check_server_empty failed", KR(ret));
|
||||
} else if (OB_FAIL(get_package_and_svn(build_version, sizeof(build_version)))) {
|
||||
LOG_WARN("fail to get build_version", KR(ret));
|
||||
} else {
|
||||
char build_version[common::OB_SERVER_VERSION_LENGTH] = {0};
|
||||
ObServerInfoInTable::ObBuildVersion build_version_string;
|
||||
ObZone zone;
|
||||
int64_t sql_port = GCONF.mysql_port;
|
||||
get_package_and_svn(build_version, sizeof(build_version));
|
||||
|
||||
if (OB_SUCC(ret) && server_empty) {
|
||||
uint64_t server_id = arg.get_server_id();
|
||||
@ -1641,8 +1642,9 @@ int ObService::get_build_version(share::ObServerInfoInTable::ObBuildVersion &bui
|
||||
int ret = OB_SUCCESS;
|
||||
char build_version_char_array[common::OB_SERVER_VERSION_LENGTH] = {0};
|
||||
build_version.reset();
|
||||
get_package_and_svn(build_version_char_array, sizeof(build_version));
|
||||
if (OB_FAIL(build_version.assign(build_version_char_array))) {
|
||||
if (OB_FAIL(get_package_and_svn(build_version_char_array, sizeof(build_version_char_array)))) {
|
||||
LOG_WARN("fail to get build_version", KR(ret));
|
||||
} else if (OB_FAIL(build_version.assign(build_version_char_array))) {
|
||||
LOG_WARN("fail to assign build_version", KR(ret), K(build_version_char_array));
|
||||
}
|
||||
return ret;
|
||||
|
@ -163,17 +163,21 @@ int ObServerInfoInTable::build_server_status(share::ObServerStatus &server_statu
|
||||
int ret = OB_SUCCESS;
|
||||
const int64_t now = ::oceanbase::common::ObTimeUtility::current_time();
|
||||
server_status.reset();
|
||||
int64_t build_version_len = build_version_.size();
|
||||
if (OB_UNLIKELY(!is_valid())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid server info", KR(ret), KPC(this));
|
||||
} else if (OB_FAIL(server_status.zone_.assign(zone_))) {
|
||||
LOG_WARN("fail to assign zone", KR(ret), K(zone_));
|
||||
} else if (build_version_len >= OB_SERVER_VERSION_LENGTH) {
|
||||
ret = OB_SIZE_OVERFLOW;
|
||||
LOG_WARN("build_version is too long", KR(ret), K(build_version_len));
|
||||
} else {
|
||||
server_status.server_ = server_;
|
||||
server_status.id_ = server_id_;
|
||||
server_status.sql_port_ = sql_port_;
|
||||
server_status.with_rootserver_ = with_rootserver_;
|
||||
strncpy(server_status.build_version_, build_version_.ptr(), OB_SERVER_VERSION_LENGTH);
|
||||
strncpy(server_status.build_version_, build_version_.ptr(), build_version_len);
|
||||
server_status.stop_time_ = stop_time_;
|
||||
server_status.start_service_time_ = start_service_time_;
|
||||
server_status.last_offline_time_ = last_offline_time_;
|
||||
@ -993,6 +997,7 @@ int ObServerTableOperator::insert_dml_builder(
|
||||
char svr_ip[OB_MAX_SERVER_ADDR_SIZE] = "";
|
||||
const char *display_status_str = NULL;
|
||||
dml.reset();
|
||||
int64_t build_version_len = strlen(server_status.build_version_);
|
||||
if (OB_UNLIKELY(!server_status.is_valid()
|
||||
|| !server_status.server_.ip_to_string(svr_ip, sizeof(svr_ip)))) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
@ -1004,6 +1009,9 @@ int ObServerTableOperator::insert_dml_builder(
|
||||
} else if (OB_ISNULL(display_status_str)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("null display status string", KR(ret), KP(display_status_str));
|
||||
} else if (OB_UNLIKELY(build_version_len >= OB_SERVER_VERSION_LENGTH)) {
|
||||
ret = OB_SIZE_OVERFLOW;
|
||||
LOG_WARN("build_version is too long", KR(ret), K(build_version_len));
|
||||
} else {
|
||||
if (OB_FAIL(dml.add_pk_column(K(svr_ip)))
|
||||
|| OB_FAIL(dml.add_pk_column("svr_port", server_status.server_.get_port()))
|
||||
|
@ -6,17 +6,25 @@
|
||||
#include <stdio.h>
|
||||
#include "share/ob_version.h"
|
||||
#include "lib/utility/ob_macro_utils.h"
|
||||
#include "lib/utility/ob_print_utils.h"
|
||||
#include "lib/oblog/ob_log_module.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
namespace share
|
||||
{
|
||||
|
||||
void get_package_and_svn(char *server_version, int64_t buf_len)
|
||||
int get_package_and_svn(char *server_version, int64_t buf_len)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
const char *server_version_template = "%s_%s(%s %s)";
|
||||
(void) snprintf(server_version, buf_len, server_version_template, PACKAGE_VERSION,
|
||||
build_version(), build_date(), build_time());
|
||||
int64_t pos = 0;
|
||||
if (OB_FAIL(databuff_printf(server_version, buf_len, pos, server_version_template, PACKAGE_VERSION,
|
||||
build_version(), build_date(), build_time()))) {
|
||||
SHARE_LOG(WARN, "fail to build server version", K(ret), K(buf_len), K(pos), K(PACKAGE_VERSION),
|
||||
K(build_version()), K(build_date()), K(build_time()));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ namespace oceanbase
|
||||
{
|
||||
namespace share
|
||||
{
|
||||
void get_package_and_svn(char *server_version, int64_t buf_len);
|
||||
int get_package_and_svn(char *server_version, int64_t buf_len);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -871,8 +871,9 @@ int ObOptimizerTraceImpl::trace_env()
|
||||
int ret = OB_SUCCESS;
|
||||
char buf[1024+1] = {0};
|
||||
int64_t buf_len = 1024;
|
||||
get_package_and_svn(buf, buf_len);
|
||||
if (OB_FAIL(new_line())) {
|
||||
if (OB_FAIL(get_package_and_svn(buf, buf_len))) {
|
||||
LOG_WARN("fail to get build_version", KR(ret));
|
||||
} else if (OB_FAIL(new_line())) {
|
||||
LOG_WARN("failed to append msg", K(ret));
|
||||
} else if (OB_FAIL(append_key_value("Version", ObString(strlen(buf), buf)))) {
|
||||
LOG_WARN("failed to append msg", K(ret));
|
||||
|
Reference in New Issue
Block a user