You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by la...@apache.org on 2023/11/08 02:32:34 UTC
(kudu) 01/03: Fix a unit test in aarch64 system
This is an automated email from the ASF dual-hosted git repository.
laiyingchun pushed a commit to branch branch-1.17.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 3000f760212f82451a311a0cbcf4c90ffbd32b46
Author: xinghuayu007 <14...@qq.com>
AuthorDate: Tue Oct 24 11:52:38 2023 +0800
Fix a unit test in aarch64 system
The block size is not fixed in different architecture systems.
For example, usually on x86 architecture it is 4k but on aarch64 some
linux distribution (eg. 4.19.90-23.30.v2101.ky10.aarch6) can use a 64k
block size kernel. Test EncryptionEnabled/LogBlockManagerTest.MetricsTest/1
run fails in some aarch64 systems currently because of ignoring the
block size of the architecture. Instead of setting a fixed
value for FLAGS_log_container_max_size, it is better to use
the variable block size to set it.
Change-Id: Ide52a251b15b1af437d570c146beb0c30fed161b
Reviewed-on: http://gerrit.cloudera.org:8080/20613
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <al...@apache.org>
(cherry picked from commit 976e9fc1105c2769d56a2ed32137d4969c8374bd)
Reviewed-on: http://gerrit.cloudera.org:8080/20678
Reviewed-by: Yingchun Lai <la...@apache.org>
Reviewed-by: Wang Xixu <14...@qq.com>
---
src/kudu/fs/log_block_manager-test.cc | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/kudu/fs/log_block_manager-test.cc b/src/kudu/fs/log_block_manager-test.cc
index d3f5cbafc..dd3cc354e 100644
--- a/src/kudu/fs/log_block_manager-test.cc
+++ b/src/kudu/fs/log_block_manager-test.cc
@@ -354,11 +354,15 @@ TEST_P(LogBlockManagerTest, MetricsTest) {
// Lower the max container size so that we can more easily test full
// container metrics.
- // TODO(abukor): If this is 1024, this becomes full when writing the first
- // block because of alignments. If it is over 4k, it fails with encryption
- // disabled due to having only 5 containers instead of 10. Investigate this.
- FLAGS_log_container_max_size = GetParam() ? 8192 : 1024;
-
+ uint64_t fs_block_size;
+ ASSERT_OK(env_->GetBlockSize(test_dir_, &fs_block_size));
+ // The block size is not fixed in different file systems. some file systems
+ // are 4K, but the others are 64K. Hence, here use the block size to set
+ // FLAGS_log_container_max_size when encryption is enabled. Because the
+ // encryption header occuppies one block on disk, so set FLAGS_log_container_max_size
+ // (2 * fs_block_size) when the encryption is enabled and set it fs_block_size when
+ // the encryption is disabled.
+ FLAGS_log_container_max_size = GetParam() ? 2 * fs_block_size : fs_block_size;
// One block --> one container.
unique_ptr<WritableBlock> writer;
ASSERT_OK(bm_->CreateBlock(test_block_opts_, &writer));