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 5d5f1e54cdd [fix](cluster key) fix bug if be enable 
enable_rowid_conversion_correctness_check (#44914)
5d5f1e54cdd is described below

commit 5d5f1e54cdd445ffb4f8c32376fe82c36496cb6d
Author: meiyi <me...@selectdb.com>
AuthorDate: Wed Dec 4 11:38:37 2024 +0800

    [fix](cluster key) fix bug if be enable 
enable_rowid_conversion_correctness_check (#44914)
    
    
    fix:
    ```
    terminate called after throwing an instance of 'std::system_error'
      what():  Resource deadlock avoided
    *** Query id: 0-0 ***
    *** is nereids: 0 ***
    *** tablet id: 1980528 ***
    *** Aborted at 1733280745 (unix time) try "date -d @1733280745" if you are 
using GNU date ***
    *** Current BE git commitID: 009e5a82c4 ***
    *** SIGABRT unknown detail explain (@0x4290022570e) received by PID 2250510 
(TID 2251330 OR 0x7f21b45dd700) from PID 2250510; stack trace: ***
     0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, 
siginfo_t*, void*) at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/common/signal_handler.h:421
     1# 0x00007F24197AFB50 in /lib64/libc.so.6
     2# gsignal in /lib64/libc.so.6
     3# __GI_abort in /lib64/libc.so.6
     4# __gnu_cxx::__verbose_terminate_handler() [clone .cold] at 
../../../../libstdc++-v3/libsupc++/vterminate.cc:75
     5# __cxxabiv1::__terminate(void (*)()) at 
../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
     6# 0x0000564E1F9917D1 in 
/mnt/disk2/meiyi/deployment/doris/output/be/lib/doris_be
     7# 0x0000564E1F991924 in 
/mnt/disk2/meiyi/deployment/doris/output/be/lib/doris_be
     8# std::__throw_system_error(int) at 
../../../../../libstdc++-v3/src/c++11/system_error.cc:338
     9# std::__shared_mutex_pthread::lock_shared() at 
/mnt/disk2/meiyi/soft/ldb_toolchain_2/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/shared_mutex:232
    10# std::shared_mutex::lock_shared() at 
/mnt/disk2/meiyi/soft/ldb_toolchain_2/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/shared_mutex:426
    11# std::shared_lock<std::shared_mutex>::shared_lock(std::shared_mutex&) at 
/mnt/disk2/meiyi/soft/ldb_toolchain_2/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/shared_mutex:727
    12# doris::BaseTablet::tablet_schema() const at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/base_tablet.h:91
    13# 
doris::BaseTablet::check_rowid_conversion(std::shared_ptr<doris::Rowset>, 
std::map<std::shared_ptr<doris::Rowset>, 
std::__cxx11::list<std::pair<doris::RowLocation, doris::RowLocation>, 
std::allocator<std::pair<doris::RowLocation, doris::RowLocation> > >, 
std::less<std::shared_ptr<doris::Rowset> >, 
std::allocator<std::pair<std::shared_ptr<doris::Rowset> const, 
std::__cxx11::list<std::pair<doris::RowLocation, doris::RowLocation>, 
std::allocator<std::pair<doris::RowLocation, doris::R [...]
    14# doris::CompactionMixin::modify_rowsets() at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/compaction.cpp:1087
    15# doris::CompactionMixin::execute_compact_impl(long) at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/compaction.cpp:472
    16# doris::CompactionMixin::execute_compact() at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/compaction.cpp:425
    17# doris::CumulativeCompaction::execute_compact() at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/cumulative_compaction.cpp:111
    18# 
doris::Tablet::execute_compaction(doris::CompactionMixin&)::$_0::operator()() 
const at /mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/tablet.cpp:1850
    19# doris::Tablet::execute_compaction(doris::CompactionMixin&) at 
/mnt/disk2/meiyi/clion_workspace/doris/be/src/olap/tablet.cpp:1850
    ```
---
 be/src/cloud/cloud_tablet.cpp                                         | 3 ++-
 be/src/olap/base_tablet.cpp                                           | 4 ----
 be/src/olap/compaction.cpp                                            | 3 ++-
 .../src/main/groovy/org/apache/doris/regression/Config.groovy         | 1 +
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/be/src/cloud/cloud_tablet.cpp b/be/src/cloud/cloud_tablet.cpp
index ea86f3b40ff..c27353be523 100644
--- a/be/src/cloud/cloud_tablet.cpp
+++ b/be/src/cloud/cloud_tablet.cpp
@@ -775,7 +775,8 @@ Status CloudTablet::calc_delete_bitmap_for_compaction(
     }
 
     std::unique_ptr<std::map<RowsetSharedPtr, RowLocationPairList>> 
location_map;
-    if (config::enable_rowid_conversion_correctness_check) {
+    if (config::enable_rowid_conversion_correctness_check &&
+        tablet_schema()->cluster_key_idxes().empty()) {
         location_map = std::make_unique<std::map<RowsetSharedPtr, 
RowLocationPairList>>();
         LOG(INFO) << "Location Map inited succ for tablet:" << tablet_id();
     }
diff --git a/be/src/olap/base_tablet.cpp b/be/src/olap/base_tablet.cpp
index a499a27b07f..104dc44ebec 100644
--- a/be/src/olap/base_tablet.cpp
+++ b/be/src/olap/base_tablet.cpp
@@ -1604,10 +1604,6 @@ Status BaseTablet::check_rowid_conversion(
         VLOG_DEBUG << "check_rowid_conversion, location_map is empty";
         return Status::OK();
     }
-    if (!tablet_schema()->cluster_key_idxes().empty()) {
-        VLOG_DEBUG << "skip check_rowid_conversion for mow tables with cluster 
keys";
-        return Status::OK();
-    }
     std::vector<segment_v2::SegmentSharedPtr> dst_segments;
 
     RETURN_IF_ERROR(
diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp
index c85ce36a103..98d7787550d 100644
--- a/be/src/olap/compaction.cpp
+++ b/be/src/olap/compaction.cpp
@@ -965,7 +965,8 @@ Status CompactionMixin::modify_rowsets() {
             LOG(INFO) << "RowLocation Set inited succ for tablet:" << 
_tablet->tablet_id();
         }
         std::unique_ptr<std::map<RowsetSharedPtr, RowLocationPairList>> 
location_map;
-        if (config::enable_rowid_conversion_correctness_check) {
+        if (config::enable_rowid_conversion_correctness_check &&
+            tablet()->tablet_schema()->cluster_key_idxes().empty()) {
             location_map = std::make_unique<std::map<RowsetSharedPtr, 
RowLocationPairList>>();
             LOG(INFO) << "Location Map inited succ for tablet:" << 
_tablet->tablet_id();
         }
diff --git 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
index e08ec604577..aca1596f863 100644
--- 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
+++ 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
@@ -1031,6 +1031,7 @@ class Config {
             excludeDirectorySet.add("schema_change_p0/unique_ck")
             List<String> excludeCases = ["test_table_properties", 
"test_create_table"
                 , "test_default_hll", "test_default_pi", 
"test_default_bitmap_empty"
+                , "test_full_compaction", "test_full_compaction_by_table_id"
                 // partial update
                 , "txn_insert", "test_update_schema_change", 
"test_generated_column_update", "test_nested_type_with_rowstore", 
"test_partial_update_generated_column", 
"nereids_partial_update_native_insert_stmt"
                 , "partial_update", "nereids_update_on_current_timestamp", 
"update_on_current_timestamp", "nereids_delete_mow_partial_update", 
"delete_mow_partial_update", "test_unique_table_auto_inc"


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

Reply via email to