diff --git a/be/src/olap/snapshot_manager.cpp b/be/src/olap/snapshot_manager.cpp index e79fc4f4bc6222..ea1dc1c995f844 100644 --- a/be/src/olap/snapshot_manager.cpp +++ b/be/src/olap/snapshot_manager.cpp @@ -459,7 +459,7 @@ Status SnapshotManager::_create_snapshot_files(const TabletSharedPtr& ref_tablet } *allow_incremental_clone = false; } else { - version = ref_tablet->max_version().second; + version = ref_tablet->max_version_unlocked().second; *allow_incremental_clone = true; } diff --git a/be/src/olap/tablet.h b/be/src/olap/tablet.h index 15e17223c38819..e81f1212e778cd 100644 --- a/be/src/olap/tablet.h +++ b/be/src/olap/tablet.h @@ -586,6 +586,7 @@ inline int Tablet::version_count() const { } inline Version Tablet::max_version() const { + std::shared_lock rdlock(_meta_lock); return _tablet_meta->max_version(); } diff --git a/be/src/olap/task/engine_publish_version_task.cpp b/be/src/olap/task/engine_publish_version_task.cpp index bdea449d351c8a..eff14dfdb09ea1 100644 --- a/be/src/olap/task/engine_publish_version_task.cpp +++ b/be/src/olap/task/engine_publish_version_task.cpp @@ -124,7 +124,7 @@ Status EnginePublishVersionTask::finish() { TabletState tablet_state; { std::shared_lock rdlock(tablet->get_header_lock()); - max_version = tablet->max_version(); + max_version = tablet->max_version_unlocked(); tablet_state = tablet->tablet_state(); } if (tablet_state == TabletState::TABLET_RUNNING &&