fix: Skip deleted shard groups during backup

pull/19864/head
Ben Johnson 2020-11-02 08:40:24 -07:00
parent ea1a3dbe60
commit 5f1968b331
3 changed files with 13 additions and 1 deletions

View File

@ -249,8 +249,15 @@ func (b *cmdBackupBuilder) backupBucket(ctx context.Context, org *influxdb.Organ
// Iterate over and backup each shard.
for _, rpi := range dbi.RetentionPolicies {
for _, sg := range rpi.ShardGroups {
if sg.Deleted() {
continue
}
for _, sh := range sg.Shards {
if err := b.backupShard(ctx, org, bkt, rpi.Name, sh.ID); err != nil {
if err := b.backupShard(ctx, org, bkt, rpi.Name, sh.ID); influxdb.ErrorCode(err) == influxdb.ENotFound {
b.logger.Warn("Shard removed during backup", zap.Uint64("shard_id", sh.ID))
continue
} else if err != nil {
return err
}
}

View File

@ -386,6 +386,10 @@ func (e *Engine) RestoreBucket(ctx context.Context, id influxdb.ID, buf []byte)
// Create shards.
for _, sgi := range rpi.ShardGroups {
if sgi.Deleted() {
continue
}
for _, sh := range sgi.Shards {
if err := e.tsdbStore.CreateShard(dbi.Name, rpi.Name, sh.ID, true); err != nil {
return nil, err

View File

@ -17,6 +17,7 @@ import (
"sync"
"time"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"