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());
 }

Reply via email to