This is an automated email from the ASF dual-hosted git repository.
adar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/master by this push:
new 8f8bfad log_block_manager: reenable dead container deletion at runtime
8f8bfad is described below
commit 8f8bfadcca640c308ff7b8510dec7f5522816fd5
Author: Adar Dembo <[email protected]>
AuthorDate: Mon Apr 15 16:50:10 2019 -0700
log_block_manager: reenable dead container deletion at runtime
A quick timeline:
1. The feature was added and its behavior enabled.
2. Occasionally, block_manager-stress-test would SIGSEGV [1]. These failures
showed up in the flaky test dashboard.
3. So, a feature flag was added in commit 8dc7904. The flag was false by
default, only set to true for a handful of tests.
4. In commit 3e0fcc9, the flag was set to true in block_manager-stress-test
so that we could continue to debug the issue.
5. Except that it hasn't surfaced since then; the last
block_manager-stress-test failure was on 02/03/19.
It's a mystery as to why there haven't been any block_manager-stress-test
failures since #4. Maybe something isn't working quite right with the
feature flag, or maybe the failure was due to something else. Either way,
let's try to enable the feature again, since it's still early in the 1.10
release cycle.
1.
http://dist-test.cloudera.org:8080/download_log?key=c195c2b0-2845-11e9-a3f1-0242ac110002
Change-Id: Icd8742c150e1447e7838d9f86173536b5726cd40
Reviewed-on: http://gerrit.cloudera.org:8080/13021
Reviewed-by: Andrew Wong <[email protected]>
Reviewed-by: Hao Hao <[email protected]>
Tested-by: Adar Dembo <[email protected]>
---
src/kudu/fs/block_manager-stress-test.cc | 4 ----
src/kudu/fs/log_block_manager-test.cc | 10 ----------
src/kudu/fs/log_block_manager.cc | 2 +-
3 files changed, 1 insertion(+), 15 deletions(-)
diff --git a/src/kudu/fs/block_manager-stress-test.cc
b/src/kudu/fs/block_manager-stress-test.cc
index ecd54ad..9d424f6 100644
--- a/src/kudu/fs/block_manager-stress-test.cc
+++ b/src/kudu/fs/block_manager-stress-test.cc
@@ -61,7 +61,6 @@
#include "kudu/util/thread.h"
DECLARE_bool(cache_force_single_shard);
-DECLARE_bool(log_block_manager_delete_dead_container);
DECLARE_double(log_container_excess_space_before_cleanup_fraction);
DECLARE_double(log_container_live_metadata_before_compact_ratio);
DECLARE_int64(block_manager_max_open_files);
@@ -143,9 +142,6 @@ class BlockManagerStressTest : public KuduTest {
// Compact block manager metadata aggressively.
FLAGS_log_container_live_metadata_before_compact_ratio = 0.99;
- // Delete full, dead log block containers at runtime.
- FLAGS_log_block_manager_delete_dead_container = true;
-
// Use a single cache shard. Otherwise, the cache can be a little bit
"sloppy"
// depending on the number of CPUs on the system.
FLAGS_cache_force_single_shard = true;
diff --git a/src/kudu/fs/log_block_manager-test.cc
b/src/kudu/fs/log_block_manager-test.cc
index 3472311..c82b7ff 100644
--- a/src/kudu/fs/log_block_manager-test.cc
+++ b/src/kudu/fs/log_block_manager-test.cc
@@ -77,7 +77,6 @@ using strings::Substitute;
DECLARE_bool(cache_force_single_shard);
DECLARE_bool(crash_on_eio);
-DECLARE_bool(log_block_manager_delete_dead_container);
DECLARE_double(env_inject_eio);
DECLARE_double(log_container_excess_space_before_cleanup_fraction);
DECLARE_double(log_container_live_metadata_before_compact_ratio);
@@ -1752,9 +1751,6 @@ TEST_F(LogBlockManagerTest, TestAbortBlock) {
}
TEST_F(LogBlockManagerTest, TestDeleteDeadContainersByDeletionTransaction) {
- // Enable deleting full and dead containers at runtime.
- FLAGS_log_block_manager_delete_dead_container = true;
-
const auto TestProcess = [&] (int block_num) {
ASSERT_GT(block_num, 0);
MetricRegistry registry;
@@ -1874,9 +1870,6 @@ TEST_F(LogBlockManagerTest,
TestDeleteDeadContainersByDeletionTransaction) {
// Test for KUDU-2665 to ensure that once the container is full and has no live
// blocks but with a reference by WritableBlock, it will not be deleted.
TEST_F(LogBlockManagerTest, TestDoNotDeleteFakeDeadContainer) {
- // Enable deleting full and dead containers at runtime.
- FLAGS_log_block_manager_delete_dead_container = true;
-
// Lower the max container size.
FLAGS_log_container_max_size = 64 * 1024;
@@ -1940,9 +1933,6 @@ TEST_F(LogBlockManagerTest,
TestDoNotDeleteFakeDeadContainer) {
}
TEST_F(LogBlockManagerTest, TestHalfPresentContainer) {
- // Enable deleting full and dead containers at runtime.
- FLAGS_log_block_manager_delete_dead_container = true;
-
BlockId block_id;
string data_file_name;
string metadata_file_name;
diff --git a/src/kudu/fs/log_block_manager.cc b/src/kudu/fs/log_block_manager.cc
index 7692050..4b47739 100644
--- a/src/kudu/fs/log_block_manager.cc
+++ b/src/kudu/fs/log_block_manager.cc
@@ -111,7 +111,7 @@ DEFINE_bool(log_block_manager_test_hole_punching, true,
TAG_FLAG(log_block_manager_test_hole_punching, advanced);
TAG_FLAG(log_block_manager_test_hole_punching, unsafe);
-DEFINE_bool(log_block_manager_delete_dead_container, false,
+DEFINE_bool(log_block_manager_delete_dead_container, true,
"When enabled, full and dead log block containers will be deleted "
"at runtime, which can potentially help improving log block
manager "
"startup time");