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

alexey pushed a commit to branch branch-1.15.x
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/branch-1.15.x by this push:
     new 578e96b  [tests] TsRecoveryITestDeathTest isn't for for TSAN buidls
578e96b is described below

commit 578e96b6767a447a1aa1d278d4e05cdc0ed3c86b
Author: Alexey Serbin <[email protected]>
AuthorDate: Sun May 23 14:42:00 2021 -0700

    [tests] TsRecoveryITestDeathTest isn't for for TSAN buidls
    
    Prior to this patch, the TestRecoverFromOpIdOverflow scenario of the
    TsRecoveryITestDeathTest hasn't actually run for TSAN builds, but always
    reported success.  A proper way of dealing with such conditions is to
    either skip a scenario or don't compile it at all as we do for others:
      * TestCFileBothCacheMemoryTypes.TestReadWriteLargeStrings
      * ThreadPoolTest.TestDeadlocks
      * DebugUtilTest.TestUnwindWhileUnsafe
    
    Change-Id: Id4ff9cd8943c780d4fe8bf6afb2ef540c07a5c8d
    Reviewed-on: http://gerrit.cloudera.org:8080/17491
    Tested-by: Alexey Serbin <[email protected]>
    Reviewed-by: Andrew Wong <[email protected]>
    (cherry picked from commit 725c8b728a4c9fd582114aa529d7f8fba186bc9d)
    Reviewed-on: http://gerrit.cloudera.org:8080/17511
    Tested-by: Grant Henke <[email protected]>
    Reviewed-by: Bankim Bhavsar <[email protected]>
    Reviewed-by: Alexey Serbin <[email protected]>
---
 src/kudu/integration-tests/ts_recovery-itest.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/kudu/integration-tests/ts_recovery-itest.cc 
b/src/kudu/integration-tests/ts_recovery-itest.cc
index 94ae9cc..35b93d8 100644
--- a/src/kudu/integration-tests/ts_recovery-itest.cc
+++ b/src/kudu/integration-tests/ts_recovery-itest.cc
@@ -547,18 +547,17 @@ TEST_P(TsRecoveryITest, TestChangeMaxCellSize) {
                             work.rows_inserted()));
 }
 
-class TsRecoveryITestDeathTest : public TsRecoveryITest {};
+#if !defined(THREAD_SANITIZER)
+// TSAN cannot handle spawning threads after fork(), so this class and its
+// test scenario isn't present for TSAN builds.
+class TsRecoveryITestDeathTest : public TsRecoveryITest {
+};
 
 // Test that tablet bootstrap can automatically repair itself if it finds an
 // overflowed OpId index written to the log caused by KUDU-1933.
 // Also serves as a regression itest for KUDU-1933 by writing ops with a high
 // term and index.
 TEST_P(TsRecoveryITestDeathTest, TestRecoverFromOpIdOverflow) {
-#if defined(THREAD_SANITIZER)
-  // TSAN cannot handle spawning threads after fork().
-  return;
-#endif
-
   // Create the initial tablet files on disk, then shut down the cluster so we
   // can meddle with the WAL.
   NO_FATALS(StartClusterOneTs());
@@ -696,6 +695,7 @@ TEST_P(TsRecoveryITestDeathTest, 
TestRecoverFromOpIdOverflow) {
   });
   NO_FATALS(cluster_->AssertNoCrashes());
 }
+#endif // #if !defined(THREAD_SANITIZER) ...
 
 // A set of threads which pick rows which are known to exist in the table
 // and issue random updates against them.

Reply via email to