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

gavinchou 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 894293c9e37 [fix](cloud) Fix warm up cache not supporting packed file 
(#60375)
894293c9e37 is described below

commit 894293c9e37614f46c20b2c75fc8d9174738defe
Author: Xin Liao <[email protected]>
AuthorDate: Sat Jan 31 00:07:10 2026 +0800

    [fix](cloud) Fix warm up cache not supporting packed file (#60375)
    
    When enable_packed_file is enabled, the warm up functions fail to
    download cache data because they use storage_resource->fs (the raw
    FileSystem) instead of RowsetMeta::fs() which wraps the FileSystem with
    PackedFileSystem.
    
    The PackedFileSystem correctly maps segment file paths to their actual
    locations within packed files. Without this mapping, the download fails
    because the segment files don't exist on S3 - they are packed into
    larger packed files.
    
    This fix changes the file_system used in:
    1. download_file_cache_block (block_file_cache_downloader.cpp)
    2. _submit_segment_download_task (cloud_tablet.cpp)
    3. _submit_inverted_index_download_task (cloud_tablet.cpp)
    
    All now use RowsetMeta::fs() instead of storage_resource->fs to properly
    handle packed files.
---
 be/src/cloud/cloud_tablet.cpp                       | 21 +++++++++++++++++++--
 be/src/io/cache/block_file_cache_downloader.cpp     | 12 +++++++++++-
 be/src/olap/rowset/rowset_writer_context.h          |  4 +++-
 .../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 ++++++-
 20 files changed, 139 insertions(+), 17 deletions(-)

diff --git a/be/src/cloud/cloud_tablet.cpp b/be/src/cloud/cloud_tablet.cpp
index 1e71cfa0fb6..25aa73033bc 100644
--- a/be/src/cloud/cloud_tablet.cpp
+++ b/be/src/cloud/cloud_tablet.cpp
@@ -1595,10 +1595,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,
@@ -1633,10 +1643,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 5113c7f8b3e..bcd21afe725 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/be/src/olap/rowset/rowset_writer_context.h 
b/be/src/olap/rowset/rowset_writer_context.h
index 8ca69b37dd4..c9de2982b43 100644
--- a/be/src/olap/rowset/rowset_writer_context.h
+++ b/be/src/olap/rowset/rowset_writer_context.h
@@ -221,7 +221,9 @@ struct RowsetWriterContext {
             append_info.tablet_id = tablet_id;
             append_info.rowset_id = rowset_id.to_string();
             append_info.txn_id = txn_id;
-            append_info.expiration_time = file_cache_ttl_sec;
+            append_info.expiration_time = file_cache_ttl_sec > 0 && 
newest_write_timestamp > 0
+                                                  ? newest_write_timestamp + 
file_cache_ttl_sec
+                                                  : 0;
             fs = std::make_shared<io::PackedFileSystem>(fs, append_info);
         }
 
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