This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch branch-1.18.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/branch-1.18.x by this push:
new 2bd97bb77 KUDU-3571: fix flakiness in AutoIncrementingItest
2bd97bb77 is described below
commit 2bd97bb77f8a43ab6a69a303b94fc7724dfbe281
Author: zhangyifan27 <[email protected]>
AuthorDate: Mon Jan 20 18:13:14 2025 +0800
KUDU-3571: fix flakiness in AutoIncrementingItest
This patch is a follow-up to 2b9a201. We added some waits before
inserting and scanning data to make sure operations are committed.
Change-Id: I62ca8fbc6b11e6935ca234abde9a3ce92620fbb6
Reviewed-on: http://gerrit.cloudera.org:8080/22363
Tested-by: Alexey Serbin <[email protected]>
Reviewed-by: Alexey Serbin <[email protected]>
(cherry picked from commit 0788d303be8c2fd8c31b5dca8f6ee765f567ddf8)
Reviewed-on: http://gerrit.cloudera.org:8080/22364
Reviewed-by: Abhishek Chennaka <[email protected]>
---
src/kudu/integration-tests/auto_incrementing-itest.cc | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/kudu/integration-tests/auto_incrementing-itest.cc
b/src/kudu/integration-tests/auto_incrementing-itest.cc
index 6f78b025f..320bb8aad 100644
--- a/src/kudu/integration-tests/auto_incrementing-itest.cc
+++ b/src/kudu/integration-tests/auto_incrementing-itest.cc
@@ -381,9 +381,13 @@ TEST_F(AutoIncrementingItest, BootstrapWithNoWals) {
// Restart the cluster.
cluster_->Shutdown();
ASSERT_OK(cluster_->Restart());
+ // Ensure that the tablet is running and leader elected.
+ ASSERT_EVENTUALLY([&] {
ASSERT_OK(ClusterVerifier(cluster_.get()).RunKsck()); });
// Insert new data and validate the auto incrementing column values.
ASSERT_OK(InsertData(kNumRows, kNumRows * 2));
+ // Wait for all the replicas to converge.
+ NO_FATALS(ClusterVerifier(cluster_.get()).CheckCluster());
for (int j = 0; j < kNumTabletServers; j++) {
vector<string> results;
ASSERT_OK(ScanTablet(j, tablet_uuid, &results));
@@ -391,7 +395,6 @@ TEST_F(AutoIncrementingItest, BootstrapWithNoWals) {
for (int i = 0; i < results.size(); i++) {
ASSERT_EQ(Substitute("(int32 c0=$0, int64 $1=$2, string
c1=\"string_val\")", i + 100,
Schema::GetAutoIncrementingColumnName(), i + 100 +
1), results[i]);
-
}
}
}
@@ -523,16 +526,14 @@ TEST_F(AutoIncrementingItest, BootstrapWalsDiverge) {
ASSERT_OK(InsertData(kNumRows, kNumRows * 2));
// Start back the tablet server and ensure all the replicas contain the same
data.
- // We scan the replica on leader_ts_index last to give it reasonable time to
start
- // serving scans.
ASSERT_OK(cluster_->tablet_server(leader_ts_index)->Restart());
- int j = (leader_ts_index + 1) % kNumTabletServers;
+ // Wait for all the replicas to converge.
+ NO_FATALS(ClusterVerifier(cluster_.get()).CheckCluster());
vector<vector<string>> results;
for (int i = 0; i < kNumTabletServers; i++) {
vector<string> result;
- ASSERT_OK(ScanTablet(j, tablet_uuid, &result));
+ ASSERT_OK(ScanTablet(i, tablet_uuid, &result));
results.emplace_back(result);
- j = (j + 1) % kNumTabletServers;
}
ASSERT_EQ(kNumTabletServers, results.size());
for (int i = 0; i < kNumTabletServers - 1; i++) {