This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 732d8c6184f [Fix](compaction) Fix nullptr in CloudStorageEngine due to
concurrent access to compaction maps (#50819)
732d8c6184f is described below
commit 732d8c6184fbfea847ed0ad2a2a4a30aa4a43206
Author: abmdocrt <[email protected]>
AuthorDate: Wed May 14 11:27:17 2025 +0800
[Fix](compaction) Fix nullptr in CloudStorageEngine due to concurrent
access to compaction maps (#50819)
Related PR: #49882
Problem Summary:
*** Query id: 0-0 ***
*** is nereids: 0 ***
*** tablet id: 0 ***
*** Aborted at 1746727905 (unix time) try "date -d @1746727905" if you
are using GNU date ***
*** Current BE git commitID: ace825afc5 ***
*** SIGSEGV address not mapped to object (@0x8) received by PID 3151893
(TID 3152363 OR 0x7f1186c00640) from PID 8; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int,
siginfo_t*, void*) at
/home/zcp/repo_center/doris_branch-3.0/doris/be/src/common/signal_handler.h:421
1# PosixSignals::chained_handler(int, siginfo*, void*) [clone .part.0]
in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
2# JVM_handle_linux_signal in
/usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
3# 0x00007F12D9FEE520 in /lib/x86_64-linux-gnu/libc.so.6
4# std::_Hashtable<long, std::pair<long const,
std::shared_ptr<doris::CloudBaseCompaction> >,
std::allocator<std::pair<long const,
std::shared_ptr<doris::CloudBaseCompaction> > >,
std::__detail::_Select1st, std::equal_to<long>, std::hash<long>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>
>::_M_find_before_node(unsigned long, long const&, unsigned long) const
at
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hashtable.h:1817
5# std::pair<std::__detail::_Node_iterator<std::pair<long const,
std::shared_ptr<doris::CloudBaseCompaction> >, false, false>, bool>
std::_Hashtable<long, std::pair<long const,
std::shared_ptr<doris::CloudBaseCompaction> >,
std::allocator<std::pair<long const,
std::shared_ptr<doris::CloudBaseCompaction> > >,
std::__detail::_Select1st, std::equal_to<long>, std::hash<long>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >::_M_emplace<long,
decltype(nullptr)>(std::integral_constant<bool, true>, long&&,
decltype(nullptr)&&) at
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hashtable.h:1947
6#
doris::CloudStorageEngine::_submit_base_compaction_task(std::shared_ptr<doris::CloudTablet>
const&) in /mnt/hdd01/PERFORMANCE_ENV/be/lib/doris_be
7#
doris::CloudStorageEngine::submit_compaction_task(std::shared_ptr<doris::CloudTablet>
const&, doris::CompactionType) at
/home/zcp/repo_center/doris_branch-3.0/doris/be/src/cloud/cloud_storage_engine.cpp:917
8# doris::CloudStorageEngine::_compaction_tasks_producer_callback() at
/home/zcp/repo_center/doris_branch-3.0/doris/be/src/cloud/cloud_storage_engine.cpp:494
9# doris::Thread::supervise_thread(void*) at
/home/zcp/repo_center/doris_branch-3.0/doris/be/src/util/thread.cpp:499
10# start_thread at ./nptl/pthread_create.c:442
11# 0x00007F12DA0D2850 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:83
---
be/src/cloud/cloud_storage_engine.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/be/src/cloud/cloud_storage_engine.cpp
b/be/src/cloud/cloud_storage_engine.cpp
index cf50eabd03f..bb9200587dd 100644
--- a/be/src/cloud/cloud_storage_engine.cpp
+++ b/be/src/cloud/cloud_storage_engine.cpp
@@ -686,6 +686,7 @@ Status
CloudStorageEngine::_submit_base_compaction_task(const CloudTabletSPtr& t
signal::tablet_id = tablet->tablet_id();
Defer defer {[&]() {
g_base_compaction_running_task_count << -1;
+ std::lock_guard lock(_compaction_mtx);
_submitted_base_compactions.erase(tablet->tablet_id());
}};
auto st =
_request_tablet_global_compaction_lock(ReaderType::READER_BASE_COMPACTION,
tablet,
@@ -885,6 +886,7 @@ Status
CloudStorageEngine::_submit_full_compaction_task(const CloudTabletSPtr& t
signal::tablet_id = tablet->tablet_id();
Defer defer {[&]() {
g_full_compaction_running_task_count << -1;
+ std::lock_guard lock(_compaction_mtx);
_submitted_full_compactions.erase(tablet->tablet_id());
}};
auto st =
_request_tablet_global_compaction_lock(ReaderType::READER_FULL_COMPACTION,
tablet,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]