From a5e5fa53a8a2a448f753240ee849158d0b709af3 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Thu, 28 Nov 2024 18:14:27 +0800 Subject: [PATCH] fix tests Signed-off-by: Ryan Leung --- server/api/member.go | 12 -------- tests/integrations/mcs/tso/server_test.go | 34 +++++++++-------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/server/api/member.go b/server/api/member.go index dc81f668d17..1bc573c0410 100644 --- a/server/api/member.go +++ b/server/api/member.go @@ -25,7 +25,6 @@ import ( "github.com/pingcap/kvproto/pkg/pdpb" "github.com/pingcap/log" "github.com/tikv/pd/pkg/errs" - "github.com/tikv/pd/pkg/slice" "github.com/tikv/pd/pkg/utils/apiutil" "github.com/tikv/pd/pkg/utils/etcdutil" "github.com/tikv/pd/pkg/utils/keypath" @@ -71,10 +70,6 @@ func getMembers(svr *server.Server) (*pdpb.GetMembersResponse, error) { if members.GetHeader().GetError() != nil { return nil, errors.WithStack(errors.New(members.GetHeader().GetError().String())) } - dclocationDistribution, err := svr.GetTSOAllocatorManager().GetClusterDCLocationsFromEtcd() - if err != nil { - return nil, errors.WithStack(err) - } for _, m := range members.GetMembers() { var e error m.BinaryVersion, e = svr.GetMember().GetMemberBinaryVersion(m.GetMemberId()) @@ -100,13 +95,6 @@ func getMembers(svr *server.Server) (*pdpb.GetMembersResponse, error) { log.Error("failed to load git hash", zap.Uint64("member", m.GetMemberId()), errs.ZapError(e)) continue } - for dcLocation, serverIDs := range dclocationDistribution { - found := slice.Contains(serverIDs, m.MemberId) - if found { - m.DcLocation = dcLocation - break - } - } } return members, nil } diff --git a/tests/integrations/mcs/tso/server_test.go b/tests/integrations/mcs/tso/server_test.go index fe25cc63158..025ddfc3423 100644 --- a/tests/integrations/mcs/tso/server_test.go +++ b/tests/integrations/mcs/tso/server_test.go @@ -183,11 +183,8 @@ func checkTSOPath(re *require.Assertions, isKeyspaceEnabled bool) { re.NoError(pdLeader.BootstrapCluster()) backendEndpoints := pdLeader.GetAddr() client := pdLeader.GetEtcdClient() - if isKeyspaceEnabled { - re.Equal(0, getEtcdTimestampKeyNum(re, client)) - } else { - re.Equal(1, getEtcdTimestampKeyNum(re, client)) - } + // PD will provide TSO service, so etcd has one key related to the timestamp. + re.Equal(1, getEtcdTimestampKeyNum(re, client)) _, cleanup := tests.StartSingleTSOTestServer(ctx, re, backendEndpoints, tempurl.Alloc()) defer cleanup() @@ -278,13 +275,19 @@ func TestForwardTSORelated(t *testing.T) { cfg := leaderServer.GetMicroServiceConfig().Clone() cfg.EnableTSODynamicSwitching = false leaderServer.SetMicroServiceConfig(*cfg) - // Unable to use the tso-related interface without tso server - suite.checkUnavailableTSO(re) + suite.checkAvailableTSO(re) + // If EnableTSODynamicSwitching is false, the tso server will be provided by PD. + // The tso server won't affect the PD. tc, err := tests.NewTestTSOCluster(suite.ctx, 1, suite.backendEndpoints) re.NoError(err) defer tc.Destroy() tc.WaitForDefaultPrimaryServing(re) suite.checkAvailableTSO(re) + + cfg = leaderServer.GetMicroServiceConfig().Clone() + cfg.EnableTSODynamicSwitching = true + leaderServer.SetMicroServiceConfig(*cfg) + suite.checkAvailableTSO(re) } func TestForwardTSOWhenPrimaryChanged(t *testing.T) { @@ -464,17 +467,6 @@ func (suite *APIServerForward) addRegions() { } } -func (suite *APIServerForward) checkUnavailableTSO(re *require.Assertions) { - _, _, err := suite.pdClient.GetTS(suite.ctx) - re.Error(err) - // try to update gc safe point - _, err = suite.pdClient.UpdateServiceGCSafePoint(suite.ctx, "a", 1000, 1) - re.Error(err) - // try to set external ts - err = suite.pdClient.SetExternalTimestamp(suite.ctx, 1000) - re.Error(err) -} - func (suite *APIServerForward) checkAvailableTSO(re *require.Assertions) { mcs.WaitForTSOServiceAvailable(suite.ctx, re, suite.pdClient) // try to get ts @@ -648,10 +640,10 @@ func TestTSOServiceSwitch(t *testing.T) { // Wait for the configuration change to take effect time.Sleep(300 * time.Millisecond) - // Verify PD is not providing TSO service multiple times + // PD should provide TSO service for range 10 { err = checkTSOMonotonic(ctx, pdClient, &globalLastTS, 1) - re.Error(err, "TSO service should not be available") + re.NoError(err, "TSO service should not be available") time.Sleep(10 * time.Millisecond) } @@ -661,7 +653,7 @@ func TestTSOServiceSwitch(t *testing.T) { cfg.EnableTSODynamicSwitching = true pdLeader.GetServer().SetMicroServiceConfig(*cfg) - // Wait for PD to detect the change + // Wait for PD to detect the change, PD will keep providing TSO service time.Sleep(300 * time.Millisecond) // Verify PD is now providing TSO service and timestamps are monotonically increasing