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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]