diff --git a/be/src/cloud/cloud_tablet.cpp b/be/src/cloud/cloud_tablet.cpp index 1e71cfa0fb6f82..25aa73033bc31e 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(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(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 5113c7f8b3e943..bcd21afe725444 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 8ca69b37dd4219..c9de2982b4378d 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(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 e0db0c258e747a..af049c001f0764 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 eb81ad69524a3b..af6389a297ee3d 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 de54b93f2d8e5d..ef3cc7d81d5ab2 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 037d54e1d6e048..7dd33b603f6c6f 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 f2af4b086a5a69..9469ac3855d47b 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 fe5dc84ef6730e..5cb200278873db 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 4eeaac1b5e6197..93a31b559c2e69 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 548cf1c3fc7552..3730a8f603a66f 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 4a9b77b5491772..58472d46a75112 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 8a3469ad8e15c0..cd8e510e933a86 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 c0dc2f9747c60c..e2ca3aeba63a48 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 25f9929aaf739a..7fe5c5173822c8 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 2fb8d834f11009..340191423e3941 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 e161b44ce0f646..861394d0a275ce 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 59e13b1030ba5a..eb969fe049a4b3 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 b0e55bd8aeff13..6dafb8c298951f 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 964ba517bb7a7c..cd8c3704005a00 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)