From 621edb46ad3bd41d4a44631416c24404176e44fa Mon Sep 17 00:00:00 2001 From: HaHaJeff Date: Fri, 11 Nov 2022 12:09:49 +0000 Subject: [PATCH] fixed begin lsn smaller then end lsn when there is no log on disk --- src/logservice/palf/log_engine.cpp | 1 + src/logservice/palf/log_storage.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/logservice/palf/log_engine.cpp b/src/logservice/palf/log_engine.cpp index 9847e7682..d8a902d54 100644 --- a/src/logservice/palf/log_engine.cpp +++ b/src/logservice/palf/log_engine.cpp @@ -135,6 +135,7 @@ int LogEngine::init(const int64_t palf_id, alloc_mgr_ = alloc_mgr; log_io_worker_ = log_io_worker; palf_epoch_ = palf_epoch; + base_lsn_for_block_gc_ = log_meta.get_log_snapshot_meta().base_lsn_; is_inited_ = true; PALF_LOG(INFO, "LogEngine init success", K(ret), K(palf_id), K(base_dir), K(palf_epoch)); } diff --git a/src/logservice/palf/log_storage.cpp b/src/logservice/palf/log_storage.cpp index 1232348b3..6f3198ac6 100644 --- a/src/logservice/palf/log_storage.cpp +++ b/src/logservice/palf/log_storage.cpp @@ -431,11 +431,14 @@ const LSN LogStorage::get_begin_lsn() const { int ret = OB_SUCCESS; LSN lsn; - lsn.val_ = 0; block_id_t min_block_id = LOG_INVALID_BLOCK_ID; block_id_t max_block_id = LOG_INVALID_BLOCK_ID; if (OB_FAIL(get_block_id_range(min_block_id, max_block_id))) { - PALF_LOG(WARN, "get_block_id_range failed", K(ret), KPC(this)); + if (OB_ENTRY_NOT_EXIST == ret) { + lsn = log_tail_; + } else { + PALF_LOG(WARN, "get_block_id_range failed", K(ret), KPC(this)); + } } else { lsn.val_ = logical_block_size_ * min_block_id; }