From 65e67fc4b2155ca41a0e907f586ac370e67cd99c Mon Sep 17 00:00:00 2001 From: lance6716 Date: Tue, 14 Jun 2022 18:00:33 +0800 Subject: [PATCH] test(dm): fix unstable tests (#5865) ref pingcap/tiflow#5089, close pingcap/tiflow#5746, close pingcap/tiflow#5793 --- Makefile | 4 ++-- dm/dm/master/server.go | 7 ++++--- dm/dm/master/server_test.go | 10 +++++++--- dm/tests/_utils/wait_process_exit | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 3784dc90136..42da3cc7748 100644 --- a/Makefile +++ b/Makefile @@ -320,7 +320,7 @@ define run_dm_unit_test mkdir -p $(DM_TEST_DIR) $(FAILPOINT_ENABLE) @export log_level=error; \ - $(GOTEST) -timeout 5m -covermode=atomic -coverprofile="$(DM_TEST_DIR)/cov.unit_test.out" $(1) \ + $(GOTEST) -timeout 10m -covermode=atomic -coverprofile="$(DM_TEST_DIR)/cov.unit_test.out" $(1) \ || { $(FAILPOINT_DISABLE); exit 1; } $(FAILPOINT_DISABLE) endef @@ -336,7 +336,7 @@ dm_unit_test_in_verify_ci: check_failpoint_ctl tools/bin/gotestsum tools/bin/goc mkdir -p $(DM_TEST_DIR) $(FAILPOINT_ENABLE) @export log_level=error; \ - CGO_ENABLED=1 tools/bin/gotestsum --junitfile dm-junit-report.xml -- -v -timeout 5m -p $(P) --race \ + CGO_ENABLED=1 tools/bin/gotestsum --junitfile dm-junit-report.xml -- -v -timeout 10m -p $(P) --race \ -covermode=atomic -coverprofile="$(DM_TEST_DIR)/cov.unit_test.out" $(DM_PACKAGES) \ || { $(FAILPOINT_DISABLE); exit 1; } tools/bin/gocov convert "$(DM_TEST_DIR)/cov.unit_test.out" | tools/bin/gocov-xml > dm-coverage.xml diff --git a/dm/dm/master/server.go b/dm/dm/master/server.go index 19de1104f27..93538ff544b 100644 --- a/dm/dm/master/server.go +++ b/dm/dm/master/server.go @@ -63,9 +63,6 @@ import ( ) const ( - // the session's TTL in seconds for leader election. - // NOTE: select this value carefully when adding a mechanism relying on leader election. - electionTTL = 60 // the DM-master leader election key prefix // DM-master cluster : etcd cluster = 1 : 1 now. electionKey = "/dm-master/leader" @@ -82,6 +79,10 @@ var ( useTLS atomic.Bool + // the session's TTL in seconds for leader election. + // NOTE: select this value carefully when adding a mechanism relying on leader election. + electionTTL = 60 + // typically there's only one server running in one process, but testMaster.TestOfflineMember starts 3 servers, // so we need sync.Once to prevent data race. registerOnce sync.Once diff --git a/dm/dm/master/server_test.go b/dm/dm/master/server_test.go index 16796075269..ba7bfc50807 100644 --- a/dm/dm/master/server_test.go +++ b/dm/dm/master/server_test.go @@ -161,9 +161,10 @@ var ( ) type testMaster struct { - workerClients map[string]workerrpc.Client - saveMaxRetryNum int - testT *testing.T + workerClients map[string]workerrpc.Client + saveMaxRetryNum int + electionTTLBackup int + testT *testing.T testEtcdCluster *integration.ClusterV3 etcdTestCli *clientv3.Client @@ -195,12 +196,15 @@ func (t *testMaster) SetUpSuite(c *check.C) { c.Assert(log.InitLogger(&log.Config{}), check.IsNil) t.workerClients = make(map[string]workerrpc.Client) t.saveMaxRetryNum = maxRetryNum + t.electionTTLBackup = electionTTL + electionTTL = 3 maxRetryNum = 2 checkAndAdjustSourceConfigForDMCtlFunc = checkAndNoAdjustSourceConfigMock } func (t *testMaster) TearDownSuite(c *check.C) { maxRetryNum = t.saveMaxRetryNum + electionTTL = t.electionTTLBackup checkAndAdjustSourceConfigForDMCtlFunc = checkAndAdjustSourceConfig } diff --git a/dm/tests/_utils/wait_process_exit b/dm/tests/_utils/wait_process_exit index 6c9190f36e7..42e3f048d4b 100755 --- a/dm/tests/_utils/wait_process_exit +++ b/dm/tests/_utils/wait_process_exit @@ -16,5 +16,5 @@ while [ $WAIT_COUNT -lt 120 ]; do ((WAIT_COUNT++)) done -echo "process $process didn't exit after 120 seconds, current processlist: $(ps -ef | grep $process | grep -v 'grep')" +echo "process $process didn't exit after 120 seconds, current processlist: $(ps aux | grep $process | grep -v 'grep')" exit 1