diff --git a/pkg/backup/client.go b/pkg/backup/client.go index a4dae42bd..7633cc6b8 100644 --- a/pkg/backup/client.go +++ b/pkg/backup/client.go @@ -546,8 +546,8 @@ func (bc *Client) findRegionLeader( for i := 0; i < 5; i++ { // better backoff. region, err := bc.mgr.GetPDClient().GetRegion(ctx, key) - if err != nil { - log.Error("find leader failed", zap.Error(err)) + if err != nil || region == nil { + log.Error("find leader failed", zap.Error(err), zap.Reflect("region", region)) time.Sleep(time.Millisecond * time.Duration(100*i)) continue } diff --git a/pkg/restore/import.go b/pkg/restore/import.go index 0bf2b49dd..3fcbcad45 100644 --- a/pkg/restore/import.go +++ b/pkg/restore/import.go @@ -273,6 +273,12 @@ func (importer *FileImporter) Import( if errIngest != nil { break ingestRetry } + // do not get region info, wait a second and continue + if newInfo == nil { + log.Warn("get region by key return nil", zap.Reflect("region", info.Region)) + time.Sleep(time.Second) + continue + } } log.Debug("ingest sst returns not leader error, retry it", utils.ZapRegion(info.Region),