This is an automated email from the ASF dual-hosted git repository.

alexey 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 c9ab243d7 KUDU-3596 fix one of the brittle assertions
c9ab243d7 is described below

commit c9ab243d7df46361eea548b39f1e52ff591c0c92
Author: Alexey Serbin <[email protected]>
AuthorDate: Mon Feb 3 13:14:24 2025 -0800

    KUDU-3596 fix one of the brittle assertions
    
    The TsTabletManagerITest.TestTableStats scenario is very brittle due the
    assumptions on various operations' timings.  This patch addresses one
    of them, replacing SleepFor(...) with more robust
    InternalMiniCluster::WaitForTabletServerCount() condition.
    
    The motivation for this changelist was following assertion in dist-test
    failure [1] from a built-and-test pre-commit build for unrelated patch:
    
      src/kudu/integration-tests/ts_tablet_manager-itest.cc:785: Failure
      Expected equality of these values:
        live_row_count
          Which is: 434
        table_info->GetMetrics()->live_row_count->value()
          Which is: 0
      ...
      src/kudu/integration-tests/ts_tablet_manager-itest.cc:895: Failure
      Expected: CheckStats(kRowsCount) doesn't generate new fatal failures in 
the current thread.
        Actual: it does.
    
    [1] 
http://dist-test.cloudera.org/job?job_id=jenkins-slave.1738567082.3715745
    
    Change-Id: Id8581ecc0368ca17c14bcfc578f3896c9515b819
    Reviewed-on: http://gerrit.cloudera.org:8080/22444
    Tested-by: Kudu Jenkins
    Reviewed-by: Yifan Zhang <[email protected]>
---
 src/kudu/integration-tests/ts_tablet_manager-itest.cc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/kudu/integration-tests/ts_tablet_manager-itest.cc 
b/src/kudu/integration-tests/ts_tablet_manager-itest.cc
index 1b898d0e6..fd5ac4f42 100644
--- a/src/kudu/integration-tests/ts_tablet_manager-itest.cc
+++ b/src/kudu/integration-tests/ts_tablet_manager-itest.cc
@@ -24,6 +24,7 @@
 #include <ostream>
 #include <string>
 #include <thread>
+#include <type_traits>
 #include <unordered_map>
 #include <utility>
 #include <vector>
@@ -888,10 +889,10 @@ TEST_F(TsTabletManagerITest, TestTableStats) {
       mini_master->Shutdown();
       SleepFor(MonoDelta::FromMilliseconds(kMaxElectionTime));
       ASSERT_OK(mini_master->Restart());
-      // Sometimes the election fails until the node restarts.
-      // And the restarted node is elected leader again.
-      // So, it is necessary to wait for all tservers to report.
-      SleepFor(MonoDelta::FromMilliseconds(FLAGS_heartbeat_interval_ms));
+      // Sometimes the restarted master is elected leader again just after
+      // starting up. It is necessary to wait for all tservers to report before
+      // sampling the table's stats.
+      ASSERT_OK(cluster_->WaitForTabletServerCount(kNumTservers));
       NO_FATALS(CheckStats(kRowsCount));
     }
   }

Reply via email to