code: func (do *Domain) mustRestartSyncer() error {
  	ctx := context.Background()
  	syncer := do.ddl.SchemaSyncer()
  
  	for {
  		err := syncer.Restart(ctx)
  		if err == nil {
  			return nil
  		}
  		// If the domain has stopped, we return an error immediately.
  		select {
  		case <-do.exit:
  			return err
  		default:
  		}
  		time.Sleep(time.Second)
  		logutil.Logger(context.Background()).Info("restart the schema syncer failed", zap.Error(err))
  	}
  }
docs: // mustRestartSyncer tries to restart the SchemaSyncer.
  // It returns until it's successful or the domain is stoped.