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

yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new 61b30b06a01 [fix](cloud) Fix warm up cache not supporting packed file 
(#60375) (#61886)
61b30b06a01 is described below

commit 61b30b06a01d813127b762ab7884676331c5e5aa
Author: Xin Liao <[email protected]>
AuthorDate: Tue Mar 31 11:55:15 2026 +0800

    [fix](cloud) Fix warm up cache not supporting packed file (#60375) (#61886)
    
    Pick apache/doris#60375
---
 be/src/cloud/cloud_tablet.cpp                       | 21 +++++++++++++++++++--
 be/src/io/cache/block_file_cache_downloader.cpp     | 12 +++++++++++-
 .../test_alter_compute_group_properties.groovy      |  8 ++++++++
 .../cloud_p0/balance/test_balance_metrics.groovy    |  8 +++++++-
 ...test_balance_use_compute_group_properties.groovy |  7 ++++++-
 .../cloud_p0/balance/test_balance_warm_up.groovy    |  7 ++++++-
 .../test_balance_warm_up_sync_global_config.groovy  |  7 ++++++-
 .../test_balance_warm_up_task_abnormal.groovy       |  7 ++++++-
 .../test_balance_warm_up_use_peer_cache.groovy      |  7 ++++++-
 ...ce_warm_up_with_compaction_use_peer_cache.groovy |  7 ++++++-
 .../balance/test_expanding_node_balance.groovy      |  7 +++++++
 .../balance/test_peer_read_async_warmup.groovy      |  7 ++++++-
 .../cloud_p0/balance/test_warmup_rebalance.groovy   |  8 ++++++++
 .../suites/cloud_p0/cache/test_load_cache.groovy    |  5 +++++
 .../cloud_p0/cache/test_topn_broadcast.groovy       |  6 +++++-
 .../tablets/test_clean_stale_rs_file_cache.groovy   |  7 ++++++-
 .../test_clean_stale_rs_index_file_cache.groovy     |  7 ++++++-
 .../test_clean_tablet_when_drop_force_table.groovy  |  7 ++++++-
 .../tablets/test_clean_tablet_when_rebalance.groovy |  7 ++++++-
 19 files changed, 136 insertions(+), 16 deletions(-)

diff --git a/be/src/cloud/cloud_tablet.cpp b/be/src/cloud/cloud_tablet.cpp
index e968ef745f5..5349f457ebe 100644
--- a/be/src/cloud/cloud_tablet.cpp
+++ b/be/src/cloud/cloud_tablet.cpp
@@ -1645,10 +1645,20 @@ void CloudTablet::_submit_segment_download_task(const 
RowsetSharedPtr& rs,
     // clang-format off
     const auto& rowset_meta = rs->rowset_meta();
     auto self = std::dynamic_pointer_cast<CloudTablet>(shared_from_this());
+    // Use rowset_meta->fs() instead of storage_resource->fs to support packed 
file.
+    // RowsetMeta::fs() wraps the underlying FileSystem with PackedFileSystem 
when
+    // packed_slice_locations is not empty, which correctly maps segment file 
paths
+    // to their actual locations within packed files.
+    auto file_system = rowset_meta->fs();
+    if (!file_system) {
+        LOG(WARNING) << "failed to get file system for tablet_id=" << 
_tablet_meta->tablet_id()
+                     << ", rowset_id=" << rowset_meta->rowset_id();
+        return;
+    }
     
_engine.file_cache_block_downloader().submit_download_task(io::DownloadFileMeta 
{
             .path = storage_resource->remote_segment_path(*rowset_meta, 
seg_id),
             .file_size = rs->rowset_meta()->segment_file_size(seg_id),
-            .file_system = storage_resource->fs,
+            .file_system = file_system,
             .ctx = {
                     .expiration_time = expiration_time,
                     .is_dryrun = 
config::enable_reader_dryrun_when_download_file_cache,
@@ -1683,10 +1693,17 @@ void 
CloudTablet::_submit_inverted_index_download_task(const RowsetSharedPtr& rs
     // clang-format off
     const auto& rowset_meta = rs->rowset_meta();
     auto self = std::dynamic_pointer_cast<CloudTablet>(shared_from_this());
+    // Use rowset_meta->fs() instead of storage_resource->fs to support packed 
file for idx files.
+    auto file_system = rowset_meta->fs();
+    if (!file_system) {
+        LOG(WARNING) << "failed to get file system for tablet_id=" << 
_tablet_meta->tablet_id()
+                     << ", rowset_id=" << rowset_meta->rowset_id();
+        return;
+    }
     io::DownloadFileMeta meta {
             .path = idx_path,
             .file_size = idx_size,
-            .file_system = storage_resource->fs,
+            .file_system = file_system,
             .ctx = {
                     .expiration_time = expiration_time,
                     .is_dryrun = 
config::enable_reader_dryrun_when_download_file_cache,
diff --git a/be/src/io/cache/block_file_cache_downloader.cpp 
b/be/src/io/cache/block_file_cache_downloader.cpp
index abc3ae0ee64..04835315b45 100644
--- a/be/src/io/cache/block_file_cache_downloader.cpp
+++ b/be/src/io/cache/block_file_cache_downloader.cpp
@@ -210,6 +210,16 @@ void FileCacheBlockDownloader::download_file_cache_block(
             LOG(WARNING) << storage_resource.error();
             return;
         }
+        // Use RowsetMeta::fs() instead of storage_resource->fs to support 
packed file.
+        // RowsetMeta::fs() wraps the underlying FileSystem with 
PackedFileSystem when
+        // packed_slice_locations is not empty, which correctly maps segment 
file paths
+        // to their actual locations within packed files.
+        auto file_system = find_it->second->fs();
+        if (!file_system) {
+            LOG(WARNING) << "download_file_cache_block: failed to get file 
system for tablet_id="
+                         << meta.tablet_id() << ", rowset_id=" << 
meta.rowset_id();
+            return;
+        }
 
         auto download_done = [&, tablet_id = meta.tablet_id()](Status st) {
             std::lock_guard lock(_inflight_mtx);
@@ -251,7 +261,7 @@ void FileCacheBlockDownloader::download_file_cache_block(
                                                   : -1, // To avoid trigger 
get file size IO
                 .offset = meta.offset(),
                 .download_size = meta.size(),
-                .file_system = storage_resource.value()->fs,
+                .file_system = file_system,
                 .ctx =
                         {
                                 .is_index_data = meta.cache_type() == 
::doris::FileCacheType::INDEX,
diff --git 
a/regression-test/suites/cloud_p0/balance/test_alter_compute_group_properties.groovy
 
b/regression-test/suites/cloud_p0/balance/test_alter_compute_group_properties.groovy
index e0db0c258e7..af049c001f0 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_alter_compute_group_properties.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_alter_compute_group_properties.groovy
@@ -22,12 +22,20 @@ suite('test_alter_compute_group_properties', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
         'cloud_tablet_rebalancer_interval_second=1',
         'sys_log_verbose_modules=org',
     ]
+    options.beConfigs += [
+        "enable_packed_file=${enablePackedFile}",
+    ]
     options.setFeNum(1)
     options.setBeNum(1)
     options.cloudMode = true
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_metrics.groovy 
b/regression-test/suites/cloud_p0/balance/test_balance_metrics.groovy
index eb81ad69524..af6389a297e 100644
--- a/regression-test/suites/cloud_p0/balance/test_balance_metrics.groovy
+++ b/regression-test/suites/cloud_p0/balance/test_balance_metrics.groovy
@@ -22,6 +22,11 @@ suite('test_balance_metrics', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -35,7 +40,8 @@ suite('test_balance_metrics', 'docker') {
         'report_tablet_interval_seconds=1',
         'schedule_sync_tablets_interval_s=18000',
         'disable_auto_compaction=true',
-        'sys_log_verbose_modules=*'
+        'sys_log_verbose_modules=*',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy
 
b/regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy
index de54b93f2d8..ef3cc7d81d5 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy
@@ -22,6 +22,11 @@ suite('test_balance_use_compute_group_properties', 'docker') 
{
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -37,7 +42,7 @@ suite('test_balance_use_compute_group_properties', 'docker') {
         'schedule_sync_tablets_interval_s=18000',
         'disable_auto_compaction=true',
         'sys_log_verbose_modules=*',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up.groovy 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up.groovy
index 037d54e1d6e..7dd33b603f6 100644
--- a/regression-test/suites/cloud_p0/balance/test_balance_warm_up.groovy
+++ b/regression-test/suites/cloud_p0/balance/test_balance_warm_up.groovy
@@ -22,6 +22,11 @@ suite('test_balance_warm_up', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -38,7 +43,7 @@ suite('test_balance_warm_up', 'docker') {
         'sys_log_verbose_modules=*',
         'cache_read_from_peer_expired_seconds=100',
         'enable_cache_read_from_peer=true',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_sync_global_config.groovy
 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_sync_global_config.groovy
index f2af4b086a5..9469ac3855d 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_sync_global_config.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_sync_global_config.groovy
@@ -22,6 +22,11 @@ suite('test_balance_warm_up_sync_cache', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -37,7 +42,7 @@ suite('test_balance_warm_up_sync_cache', 'docker') {
         'schedule_sync_tablets_interval_s=18000',
         'disable_auto_compaction=true',
         'sys_log_verbose_modules=*',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy
 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy
index fe5dc84ef67..5cb20027887 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy
@@ -22,6 +22,11 @@ suite('test_balance_warm_up_task_abnormal', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -37,7 +42,7 @@ suite('test_balance_warm_up_task_abnormal', 'docker') {
         'schedule_sync_tablets_interval_s=18000',
         'disable_auto_compaction=true',
         'sys_log_verbose_modules=*',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy
 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy
index 4eeaac1b5e6..93a31b559c2 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy
@@ -22,6 +22,11 @@ suite('test_balance_warm_up_use_peer_cache', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -41,7 +46,7 @@ suite('test_balance_warm_up_use_peer_cache', 'docker') {
         'sys_log_verbose_modules=*',
         'cache_read_from_peer_expired_seconds=100',
         'enable_cache_read_from_peer=true',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_with_compaction_use_peer_cache.groovy
 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_with_compaction_use_peer_cache.groovy
index 548cf1c3fc7..3730a8f603a 100644
--- 
a/regression-test/suites/cloud_p0/balance/test_balance_warm_up_with_compaction_use_peer_cache.groovy
+++ 
b/regression-test/suites/cloud_p0/balance/test_balance_warm_up_with_compaction_use_peer_cache.groovy
@@ -22,6 +22,11 @@ suite('test_balance_warm_up_with_compaction_use_peer_cache', 
'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -42,7 +47,7 @@ suite('test_balance_warm_up_with_compaction_use_peer_cache', 
'docker') {
         'cumulative_compaction_min_deltas=5',
         'cache_read_from_peer_expired_seconds=100',
         'enable_cache_read_from_peer=true',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy 
b/regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy
index 4a9b77b5491..58472d46a75 100644
--- a/regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy
+++ b/regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy
@@ -23,6 +23,10 @@ suite('test_expanding_node_balance', 'docker') {
         return;
     }
 
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def clusterOptions = [
         new ClusterOptions(),
         new ClusterOptions(),
@@ -40,6 +44,9 @@ suite('test_expanding_node_balance', 'docker') {
             // disable Auto Analysis Job Executor
             'auto_check_statistics_in_minutes=60',
         ]
+        options.beConfigs += [
+            "enable_packed_file=${enablePackedFile}",
+        ]
         options.cloudMode = true
         options.setFeNum(1)
         options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_peer_read_async_warmup.groovy 
b/regression-test/suites/cloud_p0/balance/test_peer_read_async_warmup.groovy
index 8a3469ad8e1..cd8e510e933 100644
--- a/regression-test/suites/cloud_p0/balance/test_peer_read_async_warmup.groovy
+++ b/regression-test/suites/cloud_p0/balance/test_peer_read_async_warmup.groovy
@@ -22,6 +22,11 @@ suite('test_peer_read_async_warmup', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -39,7 +44,7 @@ suite('test_peer_read_async_warmup', 'docker') {
         'disable_auto_compaction=true',
         'sys_log_verbose_modules=*',
         'enable_cache_read_from_peer=true',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/balance/test_warmup_rebalance.groovy 
b/regression-test/suites/cloud_p0/balance/test_warmup_rebalance.groovy
index c0dc2f9747c..e2ca3aeba63 100644
--- a/regression-test/suites/cloud_p0/balance/test_warmup_rebalance.groovy
+++ b/regression-test/suites/cloud_p0/balance/test_warmup_rebalance.groovy
@@ -22,6 +22,11 @@ suite('test_warmup_rebalance_in_cloud', 'multi_cluster, 
docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -31,6 +36,9 @@ suite('test_warmup_rebalance_in_cloud', 'multi_cluster, 
docker') {
         'sys_log_verbose_modules=org',
         'cloud_pre_heating_time_limit_sec=600'
     ]
+    options.beConfigs += [
+        "enable_packed_file=${enablePackedFile}",
+    ]
     options.setFeNum(2)
     options.setBeNum(3)
     options.cloudMode = true
diff --git a/regression-test/suites/cloud_p0/cache/test_load_cache.groovy 
b/regression-test/suites/cloud_p0/cache/test_load_cache.groovy
index 25f9929aaf7..7fe5c517382 100644
--- a/regression-test/suites/cloud_p0/cache/test_load_cache.groovy
+++ b/regression-test/suites/cloud_p0/cache/test_load_cache.groovy
@@ -33,6 +33,10 @@ changes to statistics are possible, only a reasonable range 
is required.
 */
 
 suite('test_load_cache', 'docker') {
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -41,6 +45,7 @@ suite('test_load_cache', 'docker') {
         'file_cache_enter_disk_resource_limit_mode_percent=99',
         'enable_evict_file_cache_in_advance=false',
         'file_cache_background_monitor_interval_ms=1000',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.cloudMode = true
     options.beNum = 1
diff --git a/regression-test/suites/cloud_p0/cache/test_topn_broadcast.groovy 
b/regression-test/suites/cloud_p0/cache/test_topn_broadcast.groovy
index 2fb8d834f11..340191423e3 100644
--- a/regression-test/suites/cloud_p0/cache/test_topn_broadcast.groovy
+++ b/regression-test/suites/cloud_p0/cache/test_topn_broadcast.groovy
@@ -21,6 +21,9 @@ import org.apache.doris.regression.suite.ClusterOptions
 
 suite("test_topn_broadcast", "docker") {
 
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
 
     def options = new ClusterOptions()
 
@@ -32,7 +35,8 @@ suite("test_topn_broadcast", "docker") {
     options.beConfigs += ['enable_file_cache=true', 
'enable_java_support=false', 
'file_cache_enter_disk_resource_limit_mode_percent=99',
                           'file_cache_background_lru_dump_interval_ms=2000', 
'file_cache_background_lru_log_replay_interval_ms=500',
                           'disable_auto_compation=true', 
'file_cache_enter_need_evict_cache_in_advance_percent=99',
-                          
'file_cache_background_lru_dump_update_cnt_threshold=0'
+                          
'file_cache_background_lru_dump_update_cnt_threshold=0',
+                          "enable_packed_file=${enablePackedFile}",
                         ]
 
     docker(options) {
diff --git 
a/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy 
b/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy
index e161b44ce0f..861394d0a27 100644
--- 
a/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy
+++ 
b/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy
@@ -22,6 +22,11 @@ suite('test_clean_stale_rs_file_cache', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -35,7 +40,7 @@ suite('test_clean_stale_rs_file_cache', 'docker') {
         'tablet_rowset_stale_sweep_by_size=false',
         'tablet_rowset_stale_sweep_time_sec=60',
         'vacuum_stale_rowsets_interval_s=10',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy
 
b/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy
index 59e13b1030b..eb969fe049a 100644
--- 
a/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy
+++ 
b/regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy
@@ -22,6 +22,11 @@ suite('test_clean_stale_rs_index_file_cache', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -35,7 +40,7 @@ suite('test_clean_stale_rs_index_file_cache', 'docker') {
         'tablet_rowset_stale_sweep_by_size=false',
         'tablet_rowset_stale_sweep_time_sec=60',
         'vacuum_stale_rowsets_interval_s=10',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(1)
     options.setBeNum(1)
diff --git 
a/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_drop_force_table.groovy
 
b/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_drop_force_table.groovy
index b0e55bd8aef..6dafb8c2989 100644
--- 
a/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_drop_force_table.groovy
+++ 
b/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_drop_force_table.groovy
@@ -22,6 +22,11 @@ suite('test_clean_tablet_when_drop_force_table', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     options.feConfigs += [
         'cloud_cluster_check_interval_second=1',
@@ -35,7 +40,7 @@ suite('test_clean_tablet_when_drop_force_table', 'docker') {
         'write_buffer_size=10240',
         'write_buffer_size_for_agg=10240',
         'sys_log_verbose_modules=task_worker_pool',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(3)
     options.setBeNum(3)
diff --git 
a/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_rebalance.groovy
 
b/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_rebalance.groovy
index 964ba517bb7..cd8c3704005 100644
--- 
a/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_rebalance.groovy
+++ 
b/regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_rebalance.groovy
@@ -22,6 +22,11 @@ suite('test_clean_tablet_when_rebalance', 'docker') {
     if (!isCloudMode()) {
         return;
     }
+
+    // Randomly enable or disable packed_file to test both scenarios
+    def enablePackedFile = new Random().nextBoolean()
+    logger.info("Running test with enable_packed_file=${enablePackedFile}")
+
     def options = new ClusterOptions()
     def rehashTime = 100
     options.feConfigs += [
@@ -35,7 +40,7 @@ suite('test_clean_tablet_when_rebalance', 'docker') {
         'report_tablet_interval_seconds=1',
         'write_buffer_size=10240',
         'write_buffer_size_for_agg=10240',
-        'enable_packed_file=false',
+        "enable_packed_file=${enablePackedFile}",
     ]
     options.setFeNum(3)
     options.setBeNum(3)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to