From 8bde4a52c9096a62d003dabe72754e764c513e2a Mon Sep 17 00:00:00 2001 From: husharp Date: Thu, 5 Sep 2024 17:00:47 +0800 Subject: [PATCH] refine test Signed-off-by: husharp --- pkg/tso/keyspace_group_manager.go | 11 +++++++---- pkg/tso/keyspace_group_manager_test.go | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pkg/tso/keyspace_group_manager.go b/pkg/tso/keyspace_group_manager.go index 65e6de57d04..349cdf4e289 100644 --- a/pkg/tso/keyspace_group_manager.go +++ b/pkg/tso/keyspace_group_manager.go @@ -607,7 +607,7 @@ func (kgm *KeyspaceGroupManager) primaryPriorityCheckLoop() { defer kgm.wg.Done() failpoint.Inject("fastPrimaryPriorityCheck", func() { - kgm.primaryPriorityCheckInterval = 200 * time.Millisecond + kgm.primaryPriorityCheckInterval = 1 * time.Second }) ticker := time.NewTicker(kgm.primaryPriorityCheckInterval) @@ -635,11 +635,11 @@ func (kgm *KeyspaceGroupManager) primaryPriorityCheckLoop() { } // If there is a alive member with higher priority, reset the leader. resetLeader := false - for _, member := range kg.Members { - if member.Priority <= localPriority { + for _, m := range kg.Members { + if m.Priority <= localPriority { continue } - if _, ok := aliveTSONodes[typeutil.TrimScheme(member.Address)]; ok { + if _, ok := aliveTSONodes[typeutil.TrimScheme(m.Address)]; ok { resetLeader = true break } @@ -650,10 +650,12 @@ func (kgm *KeyspaceGroupManager) primaryPriorityCheckLoop() { default: allocator, err := kgm.GetAllocatorManager(kg.ID) if err != nil { + log.Error("failed to get allocator manager", zap.Error(err)) continue } globalAllocator, err := allocator.GetAllocator(GlobalDCLocation) if err != nil { + log.Error("failed to get global allocator", zap.Error(err)) continue } // only members of specific group are valid primary candidates. @@ -668,6 +670,7 @@ func (kgm *KeyspaceGroupManager) primaryPriorityCheckLoop() { zap.Int("local-priority", localPriority)) if err := utils.TransferPrimary(kgm.etcdClient, globalAllocator.(*GlobalTSOAllocator).GetExpectedPrimaryLease(), constant.TSOServiceName, kgm.GetServiceConfig().GetName(), "", kg.ID, memberMap); err != nil { + log.Error("failed to transfer primary", zap.Error(err)) continue } } diff --git a/pkg/tso/keyspace_group_manager_test.go b/pkg/tso/keyspace_group_manager_test.go index fb4ac92a59c..d99e42088c6 100644 --- a/pkg/tso/keyspace_group_manager_test.go +++ b/pkg/tso/keyspace_group_manager_test.go @@ -1044,9 +1044,8 @@ func (suite *keyspaceGroupManagerTestSuite) TestPrimaryPriorityChange() { var err error defaultPriority := constant.DefaultKeyspaceGroupReplicaPriority - clusterID := rand.Uint64() + clusterID, err := etcdutil.InitOrGetClusterID(suite.etcdClient, "/pd/cluster_id") clusterIDStr := strconv.FormatUint(clusterID, 10) - rootPath := path.Join("/pd", clusterIDStr) cfg1 := suite.createConfig() cfg2 := suite.createConfig() @@ -1054,6 +1053,7 @@ func (suite *keyspaceGroupManagerTestSuite) TestPrimaryPriorityChange() { svcAddr2 := cfg2.GetAdvertiseListenAddr() // Register TSO server 1 + cfg1.Name = "tso1" err = suite.registerTSOServer(re, clusterIDStr, svcAddr1, cfg1) re.NoError(err) defer func() { @@ -1102,6 +1102,7 @@ func (suite *keyspaceGroupManagerTestSuite) TestPrimaryPriorityChange() { checkTSO(ctx, re, &wg, mgr1, ids) // Create the Second TSO server. + cfg2.Name = "tso2" err = suite.registerTSOServer(re, clusterIDStr, svcAddr2, cfg2) re.NoError(err) mgr2 := suite.newKeyspaceGroupManager(1, clusterID, cfg2) @@ -1150,8 +1151,7 @@ func (suite *keyspaceGroupManagerTestSuite) TestPrimaryPriorityChange() { func (suite *keyspaceGroupManagerTestSuite) registerTSOServer( re *require.Assertions, clusterID, svcAddr string, cfg *TestServiceConfig, ) error { - // Register TSO server 1 - serviceID := &discovery.ServiceRegistryEntry{ServiceAddr: cfg.GetAdvertiseListenAddr()} + serviceID := &discovery.ServiceRegistryEntry{ServiceAddr: cfg.GetAdvertiseListenAddr(), Name: cfg.Name} serializedEntry, err := serviceID.Serialize() re.NoError(err) serviceKey := discovery.RegistryPath(clusterID, constant.TSOServiceName, svcAddr)