diff --git a/pkg/mcs/tso/server/server.go b/pkg/mcs/tso/server/server.go index 94270169752..66a22d98c26 100644 --- a/pkg/mcs/tso/server/server.go +++ b/pkg/mcs/tso/server/server.go @@ -160,7 +160,7 @@ func (s *Server) Run() error { skipWaitAPIServiceReady = true }) if !skipWaitAPIServiceReady { - if err := s.waitAPIServiceReady(s.ctx); err != nil { + if err := s.waitAPIServiceReady(); err != nil { return err } } @@ -534,9 +534,9 @@ func (s *Server) startServer() (err error) { return nil } -func (s *Server) waitAPIServiceReady(ctx context.Context) error { +func (s *Server) waitAPIServiceReady() error { for i := 0; i < maxRetryTimesWaitAPIService; i++ { - ready, err := s.isAPIServiceReady(ctx) + ready, err := s.isAPIServiceReady() if err != nil { log.Warn("failed to check api server ready", errs.ZapError(err)) } @@ -544,7 +544,7 @@ func (s *Server) waitAPIServiceReady(ctx context.Context) error { return nil } select { - case <-ctx.Done(): + case <-s.ctx.Done(): return errors.New("context canceled while waiting api server ready") case <-time.After(retryIntervalWaitAPIService): log.Debug("api server is not ready, retrying") @@ -553,7 +553,7 @@ func (s *Server) waitAPIServiceReady(ctx context.Context) error { return errors.Errorf("failed to wait api server ready after retrying %d times", maxRetryTimesWaitAPIService) } -func (s *Server) isAPIServiceReady(ctx context.Context) (bool, error) { +func (s *Server) isAPIServiceReady() (bool, error) { urls := strings.Split(s.cfg.BackendEndpoints, ",") if len(urls) == 0 { return false, errors.New("no backend endpoints") diff --git a/tests/integrations/tso/client_test.go b/tests/integrations/tso/client_test.go index 1b3e4ae25c6..b8531c3adbf 100644 --- a/tests/integrations/tso/client_test.go +++ b/tests/integrations/tso/client_test.go @@ -307,9 +307,13 @@ func TestMixedTSODeployment(t *testing.T) { re := require.New(t) re.NoError(failpoint.Enable("github.com/tikv/pd/pkg/tso/fastUpdatePhysicalInterval", "return(true)")) - defer re.NoError(failpoint.Disable("github.com/tikv/pd/pkg/tso/fastUpdatePhysicalInterval")) re.NoError(failpoint.Enable("github.com/tikv/pd/client/skipUpdateServiceMode", "return(true)")) - defer re.NoError(failpoint.Disable("github.com/tikv/pd/client/skipUpdateServiceMode")) + re.NoError(failpoint.Enable("github.com/tikv/pd/pkg/mcs/tso/server/skipWaitAPIServiceReady", "return(true)")) + defer func() { + re.NoError(failpoint.Disable("github.com/tikv/pd/pkg/tso/fastUpdatePhysicalInterval")) + re.NoError(failpoint.Disable("github.com/tikv/pd/client/skipUpdateServiceMode")) + re.NoError(failpoint.Disable("github.com/tikv/pd/pkg/mcs/tso/server/skipWaitAPIServiceReady")) + }() ctx, cancel := context.WithCancel(context.Background()) cluster, err := tests.NewTestCluster(ctx, 1)