This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
     new c9c64abd73 [fix](tablet) protect max_version by meta lock (#23654)
c9c64abd73 is described below

commit c9c64abd7371a0161d83564068bca219c5ef93aa
Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com>
AuthorDate: Wed Aug 30 14:38:19 2023 +0800

    [fix](tablet) protect max_version by meta lock (#23654)
    
    refer to #21948
---
 be/src/olap/snapshot_manager.cpp                 | 2 +-
 be/src/olap/tablet.h                             | 1 +
 be/src/olap/task/engine_publish_version_task.cpp | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/be/src/olap/snapshot_manager.cpp b/be/src/olap/snapshot_manager.cpp
index e79fc4f4bc..ea1dc1c995 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 15e17223c3..e81f1212e7 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 bdea449d35..eff14dfdb0 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 &&


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to