This is an automated email from the ASF dual-hosted git repository. awong pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 8af4883be0d49d4fe69ef697345d1feee799c935 Author: Andrew Wong <[email protected]> AuthorDate: Fri Jul 19 19:11:40 2019 -0700 test: deflake ksck_remote-test TestChecksumSnapshotCurrentTimestamp I saw a failure of the test with the following error: W0720 00:44:31.890009 4561 tablet_service.cc:2357] Rejecting scan request for tablet 9542a9eebae84c1b993235a309c866d0: Uninitialized: safe time has not yet been initialized /data0/jenkins/workspace/kudu-pre-commit-unittest-ASAN/src/kudu/tools/ksck_remote-test.cc:451: Failure Failed Bad status: Aborted: 1 errors were detected This patch wraps the checksum with an ASSERT_EVENTUALLY, since the scan should eventually pass once a leader is elected or writes succeed. Change-Id: I51aeaebca599697e444b244ae15259dea4dbe949 Reviewed-on: http://gerrit.cloudera.org:8080/13887 Tested-by: Kudu Jenkins Reviewed-by: Hao Hao <[email protected]> --- src/kudu/tools/ksck_remote-test.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/kudu/tools/ksck_remote-test.cc b/src/kudu/tools/ksck_remote-test.cc index ba4328a..a64e268 100644 --- a/src/kudu/tools/ksck_remote-test.cc +++ b/src/kudu/tools/ksck_remote-test.cc @@ -445,10 +445,14 @@ TEST_F(RemoteKsckTest, TestChecksumSnapshotCurrentTimestamp) { ASSERT_OK(ksck_->CheckClusterRunning()); ASSERT_OK(ksck_->FetchTableAndTabletInfo()); ASSERT_OK(ksck_->FetchInfoFromTabletServers()); - ASSERT_OK(ksck_->ChecksumData(KsckChecksumOptions(MonoDelta::FromSeconds(10), - MonoDelta::FromSeconds(10), - 16, true, - KsckChecksumOptions::kCurrentTimestamp))); + // It's possible for scans to fail because the tablets haven't been written + // to yet and haven't elected a leader. + ASSERT_EVENTUALLY([&] { + ASSERT_OK(ksck_->ChecksumData(KsckChecksumOptions(MonoDelta::FromSeconds(10), + MonoDelta::FromSeconds(10), + 16, true, + KsckChecksumOptions::kCurrentTimestamp))); + }); } ASSERT_OK(promise.Get()); }
