fixed begin lsn smaller then end lsn when there is no log on disk
This commit is contained in:
@ -135,6 +135,7 @@ int LogEngine::init(const int64_t palf_id,
|
|||||||
alloc_mgr_ = alloc_mgr;
|
alloc_mgr_ = alloc_mgr;
|
||||||
log_io_worker_ = log_io_worker;
|
log_io_worker_ = log_io_worker;
|
||||||
palf_epoch_ = palf_epoch;
|
palf_epoch_ = palf_epoch;
|
||||||
|
base_lsn_for_block_gc_ = log_meta.get_log_snapshot_meta().base_lsn_;
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
PALF_LOG(INFO, "LogEngine init success", K(ret), K(palf_id), K(base_dir), K(palf_epoch));
|
PALF_LOG(INFO, "LogEngine init success", K(ret), K(palf_id), K(base_dir), K(palf_epoch));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -431,11 +431,14 @@ const LSN LogStorage::get_begin_lsn() const
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
LSN lsn;
|
LSN lsn;
|
||||||
lsn.val_ = 0;
|
|
||||||
block_id_t min_block_id = LOG_INVALID_BLOCK_ID;
|
block_id_t min_block_id = LOG_INVALID_BLOCK_ID;
|
||||||
block_id_t max_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))) {
|
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 {
|
} else {
|
||||||
lsn.val_ = logical_block_size_ * min_block_id;
|
lsn.val_ = logical_block_size_ * min_block_id;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user