Skip to content

Commit 88009d4

Browse files
committed
[PBM-1245] fix the only incremental chain in delete-backup (by name)
1 parent cfee605 commit 88009d4

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

pbm/backup/delete.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func CanDeleteBackup(ctx context.Context, cc connect.Client, bcp *BackupMeta) er
142142
return ErrIncrementalBackup
143143
}
144144

145-
required, err := isRequiredForOplogSlicing(ctx, cc, bcp.LastWriteTS)
145+
required, err := isRequiredForOplogSlicing(ctx, cc, bcp.LastWriteTS, primitive.Timestamp{})
146146
if err != nil {
147147
return errors.Wrap(err, "check pitr requirements")
148148
}
@@ -178,7 +178,7 @@ func CanDeleteIncrementalChain(
178178
}
179179
}
180180

181-
required, err := isRequiredForOplogSlicing(ctx, cc, lastWrite)
181+
required, err := isRequiredForOplogSlicing(ctx, cc, lastWrite, base.LastWriteTS)
182182
if err != nil {
183183
return errors.Wrap(err, "check pitr requirements")
184184
}
@@ -262,7 +262,12 @@ func isValidBaseSnapshot(bcp *BackupMeta) bool {
262262
return true
263263
}
264264

265-
func isRequiredForOplogSlicing(ctx context.Context, cc connect.Client, lw primitive.Timestamp) (bool, error) {
265+
func isRequiredForOplogSlicing(
266+
ctx context.Context,
267+
cc connect.Client,
268+
lw primitive.Timestamp,
269+
baseLW primitive.Timestamp,
270+
) (bool, error) {
266271
enabled, oplogOnly, err := config.IsPITREnabled(ctx, cc)
267272
if err != nil {
268273
return false, err
@@ -280,7 +285,7 @@ func isRequiredForOplogSlicing(ctx context.Context, cc connect.Client, lw primit
280285
return false, nil
281286
}
282287

283-
prevRestoreTime, err := FindBaseSnapshotLWBefore(ctx, cc, lw)
288+
prevRestoreTime, err := FindBaseSnapshotLWBefore(ctx, cc, lw, baseLW)
284289
if err != nil {
285290
return false, errors.Wrap(err, "find previous snapshot")
286291
}

pbm/backup/query.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,9 @@ func FindBaseSnapshotLWBefore(
296296
ctx context.Context,
297297
cc connect.Client,
298298
lw primitive.Timestamp,
299+
exclude primitive.Timestamp,
299300
) (primitive.Timestamp, error) {
300-
return findBaseSnapshotLWImpl(ctx, cc, bson.M{"$lt": lw}, -1)
301+
return findBaseSnapshotLWImpl(ctx, cc, bson.M{"$lt": lw, "$ne": exclude}, -1)
301302
}
302303

303304
func findBaseSnapshotLWImpl(

0 commit comments

Comments
 (0)