You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2026/10/23 18:03:41 UTC
(kudu) branch master updated: [tests] fix flake in raft_consensus_nonvoter-itest
This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits 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 31adf6196 [tests] fix flake in raft_consensus_nonvoter-itest
31adf6196 is described below
commit 31adf619616727b401b0ac725d161fedbf623402
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Wed Oct 21 22:18:51 2026 -0700
[tests] fix flake in raft_consensus_nonvoter-itest
The IncompatibleReplicaReplacementSchemesITest.MasterAndTserverMisconfig
scenario in raft_consensus_nonvoter-itest was failing intermittently
on macOS 26.7.x aarch64 before this fix. It turned out restarting
tablet server with incompatible replica management policy sometimes
fails, so there is no need to invoke WaitForFatal() in that case.
This changelist addresses the issue.
Change-Id: I33bb1c179b44e71bdb444ceae39b18595a764a00
Reviewed-on: http://gerrit.cloudera.org:8080/25182
Tested-by: Alexey Serbin <al...@apache.org>
Reviewed-by: Abhishek Chennaka <ac...@cloudera.com>
---
.../raft_consensus_nonvoter-itest.cc | 36 ++++++++++++++++++----
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc b/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
index e29d514eb..8ffa27b91 100644
--- a/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
+++ b/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
@@ -2010,9 +2010,21 @@ TEST_P(IncompatibleReplicaReplacementSchemesITest, MasterAndTserverMisconfig) {
// and the tablet server.
ts->mutable_flags()->emplace_back(
Substitute("--raft_prepare_replacement_before_eviction=$0", !is_3_4_3));
- ASSERT_OK(ts->Restart());
- if (is_incompatible_replica_management_fatal) {
- ASSERT_OK(ts->WaitForFatal(kTimeout));
+ {
+ const auto rs = ts->Restart();
+ if (!is_incompatible_replica_management_fatal) {
+ ASSERT_OK(rs);
+ } else {
+ if (rs.ok()) {
+ ASSERT_OK(ts->WaitForFatal(kTimeout));
+ } else {
+ // ExternalTabletServer::Restart() might fail right away with
+ // incompatible replica management policy reporting process exiting
+ // on SIGABRT, so no need to invoke WaitForFatal().
+ ASSERT_TRUE(rs.IsRuntimeError()) << rs.ToString();
+ ASSERT_STR_CONTAINS(rs.ToString(), "process exited on signal 6");
+ }
+ }
}
SleepFor(MonoDelta::FromMilliseconds(heartbeat_interval_ms * 3));
@@ -2025,9 +2037,21 @@ TEST_P(IncompatibleReplicaReplacementSchemesITest, MasterAndTserverMisconfig) {
ts->mutable_flags()->pop_back();
ts->mutable_flags()->emplace_back("--heartbeat_inject_required_feature_flag=999");
ts->Shutdown();
- ASSERT_OK(ts->Restart());
- if (is_incompatible_replica_management_fatal) {
- ASSERT_OK(ts->WaitForFatal(kTimeout));
+ {
+ const auto rs = ts->Restart();
+ if (!is_incompatible_replica_management_fatal) {
+ ASSERT_OK(rs);
+ } else {
+ if (rs.ok()) {
+ ASSERT_OK(ts->WaitForFatal(kTimeout));
+ } else {
+ // ExternalTabletServer::Restart() might fail right away with
+ // incompatible replica management policy reporting process exiting
+ // on SIGABRT, so no need to invoke WaitForFatal().
+ ASSERT_TRUE(rs.IsRuntimeError()) << rs.ToString();
+ ASSERT_STR_CONTAINS(rs.ToString(), "process exited on signal 6");
+ }
+ }
}
SleepFor(MonoDelta::FromMilliseconds(heartbeat_interval_ms * 3));