From 9aac19dcde334d0961411fd400c28f174592ecee Mon Sep 17 00:00:00 2001 From: obdev Date: Fri, 28 Oct 2022 11:07:18 +0000 Subject: [PATCH] fix block file unexpected gc op. --- .../election_priority_impl/election_priority_impl.h | 2 +- src/logservice/palf/palf_env_impl.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/logservice/leader_coordinator/election_priority_impl/election_priority_impl.h b/src/logservice/leader_coordinator/election_priority_impl/election_priority_impl.h index 80025cce51..336be59b4b 100644 --- a/src/logservice/leader_coordinator/election_priority_impl/election_priority_impl.h +++ b/src/logservice/leader_coordinator/election_priority_impl/election_priority_impl.h @@ -97,7 +97,7 @@ struct PriorityV1 : public AbstractPriority OB_UNIS_VERSION(1); public: PriorityV1() : is_observer_stopped_(false), is_server_stopped_(false), is_zone_stopped_(false), - is_primary_region_(false), is_in_blacklist_(false), is_manual_leader_(false), + is_primary_region_(false), log_ts_(0), is_in_blacklist_(false), is_manual_leader_(false), zone_priority_(INT64_MAX) {} // 判断该优先级策略是否适用于特定的版本 virtual uint64_t get_started_version() const override { return CLUSTER_VERSION_4_0_0_0; } diff --git a/src/logservice/palf/palf_env_impl.cpp b/src/logservice/palf/palf_env_impl.cpp index 0c16e9752d..4fed985e72 100644 --- a/src/logservice/palf/palf_env_impl.cpp +++ b/src/logservice/palf/palf_env_impl.cpp @@ -639,6 +639,7 @@ bool PalfEnvImpl::LogGetRecycableFileCandidate::operator()(const LSKey &palf_id, // first uncommitted log before base_lsn. } else if (OB_ENTRY_NOT_EXIST == ret || OB_NO_SUCH_FILE_OR_DIRECTORY == ret + || min_using_block_id < min_block_id || min_using_block_id - min_block_id < 2) { PALF_LOG(TRACE, "can not recycle blocks, need keep at least two blocks or has been concurrently" " with rebuild, skip it",