From 18a578947730e130fbc5b8e14c06dc7ebae0ada7 Mon Sep 17 00:00:00 2001 From: BinChenn Date: Wed, 26 Apr 2023 12:46:48 +0000 Subject: [PATCH] [PALF] considering start_service_time when degrading/upgrading log streams --- src/logservice/ob_net_keepalive_adapter.cpp | 6 ++++-- src/logservice/palf/log_config_mgr.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/logservice/ob_net_keepalive_adapter.cpp b/src/logservice/ob_net_keepalive_adapter.cpp index b71fbee12..2f86c6630 100644 --- a/src/logservice/ob_net_keepalive_adapter.cpp +++ b/src/logservice/ob_net_keepalive_adapter.cpp @@ -37,10 +37,12 @@ int ObNetKeepAliveAdapter::in_black_or_stopped_(const common::ObAddr &server, } else if (OB_FAIL(net_keepalive_->in_black(server, in_blacklist, &ka_data))) { CLOG_LOG(WARN, "in_black failed", K(ret), K(server)); } else { - is_server_stopped = (share::RSS_IS_STOPPED == ka_data.rs_server_status_); + is_server_stopped = (share::RSS_IS_STOPPED == ka_data.rs_server_status_) + || (ka_data.start_service_time_ <= 0 || OB_INVALID_TIMESTAMP == ka_data.start_service_time_); if (is_server_stopped && REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - CLOG_LOG(INFO, "this server is stopped", K(server)); + CLOG_LOG(INFO, "this server is stopped", K(server), "server_status", ka_data.rs_server_status_, + "start_service_time", ka_data.start_service_time_); } CLOG_LOG(TRACE, "in_black_or_stopped_ failed", K(in_blacklist), K(is_server_stopped), K(server)); } diff --git a/src/logservice/palf/log_config_mgr.cpp b/src/logservice/palf/log_config_mgr.cpp index 671191fba..bce7faa89 100644 --- a/src/logservice/palf/log_config_mgr.cpp +++ b/src/logservice/palf/log_config_mgr.cpp @@ -2000,14 +2000,14 @@ int LogConfigMgr::check_follower_sync_status_(const LogConfigChangeArgs &args, (added_member_last_slide_log_id != INT64_MAX && leader_last_slide_log_id - added_member_last_slide_log_id < PALF_SLIDING_WINDOW_SIZE)) { ret = OB_SUCCESS; - PALF_LOG(INFO, "the gap between the leader and added member is smaller than the group_buffer_size, skip", + PALF_LOG(INFO, "the gap between the leader and added member is smaller than the group_buffer_size", K(ret), K_(palf_id), K_(self), K(args), K(new_replica_num), K(first_leader_committed_end_lsn), - K(added_member_flushed_end_lsn)); + K(added_member_flushed_end_lsn), K(leader_last_slide_log_id), K(added_member_last_slide_log_id)); } else { ret = OB_EAGAIN; - PALF_LOG(INFO, "the gap between the leader and added member is smaller than the group_buffer_size, skip", + PALF_LOG(INFO, "the gap between the leader and added member is larger than the group_buffer_size, skip", K(ret), K_(palf_id), K_(self), K(args), K(new_replica_num), K(first_leader_committed_end_lsn), - K(added_member_flushed_end_lsn)); + K(added_member_flushed_end_lsn), K(leader_last_slide_log_id), K(added_member_last_slide_log_id)); } } else { PALF_LOG(INFO, "majority of new_member_list aren't sync with leader", K_(palf_id), K_(self), K(first_committed_end_lsn),