Skip to content

Commit a1102d7

Browse files
committed
stop backup slicer after dumpDone
1 parent b99501f commit a1102d7

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

pbm/backup/backup.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ func (b *Backup) waitForFirstLastWrite(
622622
return first, last, errors.Errorf("backup stuck, last beat ts: %d", bmeta.Hb.T)
623623
}
624624

625-
if bmeta.FirstWriteTS.T > 0 && bmeta.LastWriteTS.T > 0 {
625+
if bmeta.FirstWriteTS.T > 1 && bmeta.LastWriteTS.T > 1 {
626626
return bmeta.FirstWriteTS, bmeta.LastWriteTS, nil
627627
}
628628
case <-ctx.Done():
@@ -702,7 +702,7 @@ func setClusterLastWriteImpl(
702702
return errors.New("no replset metadata")
703703
}
704704

705-
if condAll(bcp.Replsets, func(br *BackupReplset) bool { return !br.LastWriteTS.IsZero() }) {
705+
if condAll(bcp.Replsets, func(br *BackupReplset) bool { return br.LastWriteTS.T > 1 }) {
706706
break
707707
}
708708

pbm/backup/logical.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,18 @@ func (b *Backup) doLogical(
178178
return errors.Wrap(err, "set shard's StatusDumpDone")
179179
}
180180

181+
if inf.IsLeader() {
182+
err := b.reconcileStatus(ctx, bcp.Name, opid.String(), defs.StatusDumpDone, nil)
183+
if err != nil {
184+
return errors.Wrap(err, "check cluster for dump done")
185+
}
186+
}
187+
188+
err = b.waitForStatus(ctx, bcp.Name, defs.StatusDumpDone, nil)
189+
if err != nil {
190+
return errors.Wrap(err, "waiting for dump done")
191+
}
192+
181193
lastSavedTS, oplogSize, err := stopOplogSlicer()
182194
if err != nil {
183195
return errors.Wrap(err, "oplog")
@@ -189,22 +201,12 @@ func (b *Backup) doLogical(
189201
}
190202

191203
if inf.IsLeader() {
192-
err := b.reconcileStatus(ctx, bcp.Name, opid.String(), defs.StatusDumpDone, nil)
193-
if err != nil {
194-
return errors.Wrap(err, "check cluster for dump done")
195-
}
196-
197204
err = b.setClusterLastWrite(ctx, bcp.Name)
198205
if err != nil {
199206
return errors.Wrap(err, "set cluster last write ts")
200207
}
201208
}
202209

203-
err = b.waitForStatus(ctx, bcp.Name, defs.StatusDumpDone, nil)
204-
if err != nil {
205-
return errors.Wrap(err, "waiting for dump done")
206-
}
207-
208210
err = IncBackupSize(ctx, b.leadConn, bcp.Name, snapshotSize+oplogSize)
209211
if err != nil {
210212
return errors.Wrap(err, "inc backup size")

0 commit comments

Comments
 (0)