[4.1] refine logging of tx-ctx gc caused by server inactive

This commit is contained in:
chinaxing 2022-12-19 12:37:50 +00:00 committed by ob-robot
parent 892a3414d0
commit faad7ce57a
3 changed files with 16 additions and 10 deletions

View File

@ -134,9 +134,9 @@ int ObAliveServerMap::refresh(common::ObIArray<ObAddr> &active_server_list,
LOG_WARN("invalid argument, empty server list", K(ret));
} else {
ObLatchWGuard guard(lock_, ObLatchIds::ALIVE_SERVER_TRACER_LOCK);
if (OB_FAIL(refresh_server_list(active_server_list, active_servers_))) {
if (OB_FAIL(refresh_server_list(active_server_list, active_servers_, "active"))) {
LOG_WARN("fail to refresh server list", KR(ret), K(active_server_list));
} else if (OB_FAIL(refresh_server_list(inactive_server_list, inactive_servers_))) {
} else if (OB_FAIL(refresh_server_list(inactive_server_list, inactive_servers_, "inactive"))) {
LOG_WARN("fail to refresh server list", KR(ret), K(inactive_server_list));
}
if (OB_SUCC(ret)) {
@ -147,12 +147,16 @@ int ObAliveServerMap::refresh(common::ObIArray<ObAddr> &active_server_list,
}
int ObAliveServerMap::refresh_server_list(const ObIArray<ObAddr> &server_list,
hash::ObHashSet<ObAddr, common::hash::NoPthreadDefendMode> &servers)
hash::ObHashSet<ObAddr, common::hash::NoPthreadDefendMode> &servers,
const char *server_list_type)
{
int ret = OB_SUCCESS;
if (!is_inited_) {
ret = OB_NOT_INIT;
LOG_WARN("not init", K(ret));
} else if (OB_ISNULL(server_list_type)) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("server_list_type is null", K(ret));
} else {
FOREACH_CNT_X(s, server_list, OB_SUCC(ret)) {
ret = servers.exist_refactored(*s);
@ -160,12 +164,12 @@ int ObAliveServerMap::refresh_server_list(const ObIArray<ObAddr> &server_list,
ret = OB_SUCCESS;
} else if (OB_HASH_NOT_EXIST == ret) {
if (OB_FAIL(servers.set_refactored(*s))) {
LOG_WARN("add server hash set failed", K(ret), "server", *s);
LOG_WARN("add server hash set failed", KCSTRING(server_list_type), K(ret), "server", *s);
} else {
LOG_INFO("add server to alive server map", "server", *s);
_LOG_INFO("add server to %s server map: %s", server_list_type, to_cstring(s));
}
} else {
LOG_WARN("hash set exist failed", K(ret), "server", *s);
LOG_WARN("hash set exist failed", KCSTRING(server_list_type), K(ret), "server", *s);
}
}
if (OB_SUCC(ret) && servers.size() > server_list.count()) {
@ -173,15 +177,15 @@ int ObAliveServerMap::refresh_server_list(const ObIArray<ObAddr> &server_list,
FOREACH_X(s, servers, OB_SUCC(ret)) {
if (!has_exist_in_array(server_list, s->first)) {
if (OB_FAIL(remove_set.push_back(s->first))) {
LOG_WARN("add server to array failed", K(ret), "server", s->first);
LOG_WARN("add server to array failed", KCSTRING(server_list_type), K(ret), "server", s->first);
}
}
}
FOREACH_X(s, remove_set, OB_SUCC(ret)) {
if (OB_FAIL(servers.erase_refactored(*s))) {
LOG_WARN("erase from hash set failed", K(ret), "server", *s);
LOG_WARN("erase from hash set failed", KCSTRING(server_list_type), K(ret), "server", *s);
} else {
LOG_INFO("remove server from alive server map", "server", *s);
_LOG_INFO("remove server from %s server map: %s", server_list_type, to_cstring(*s));
}
}
}

View File

@ -67,7 +67,8 @@ public:
private:
virtual int refresh_server_list(const common::ObIArray<common::ObAddr> &server_list,
common::hash::ObHashSet<common::ObAddr, common::hash::NoPthreadDefendMode> &servers);
common::hash::ObHashSet<common::ObAddr, common::hash::NoPthreadDefendMode> &servers,
const char *server_list_type);
private:
bool is_inited_;
mutable common::ObLatch lock_;

View File

@ -1241,6 +1241,7 @@ int ObPartTransCtx::check_scheduler_status()
*this);
// scheduler已宕机
} else if (!is_alive) {
TRANS_LOG(WARN, "scheduler server is not alive, tx ctx will do gc");
if (OB_FAIL(gc_ctx_())) {
TRANS_LOG(WARN, "force kill part_ctx error", KR(ret), "context", *this);
}