Skip to content

Commit c270122

Browse files
authored
Merge pull request #1108 from percona/PBM-1482-fix-config-srv-files-download
PBM-1482: Selective Restore hangs on oplog replay and doesn't finish
2 parents 5a023a6 + 800f4b6 commit c270122

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

pbm/restore/selective.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ func (r *Restore) configsvrRestoreDatabases(
127127
if err != nil {
128128
return err
129129
}
130+
defer rdr.Close()
131+
130132
rdr, err = compress.Decompress(rdr, bcp.Compression)
131133
if err != nil {
132134
return err
@@ -210,6 +212,8 @@ func (r *Restore) configsvrRestoreCollections(
210212
if err != nil {
211213
return nil, err
212214
}
215+
defer rdr.Close()
216+
213217
rdr, err = compress.Decompress(rdr, bcp.Compression)
214218
if err != nil {
215219
return nil, err
@@ -274,6 +278,8 @@ func (r *Restore) configsvrRestoreChunks(
274278
if err != nil {
275279
return err
276280
}
281+
defer rdr.Close()
282+
277283
rdr, err = compress.Decompress(rdr, bcp.Compression)
278284
if err != nil {
279285
return err
@@ -332,7 +338,11 @@ func (r *Restore) configsvrRestoreChunks(
332338
models = append(models, mongo.NewInsertOneModel().SetDocument(doc))
333339
}
334340

335-
if len(models) == 0 {
341+
if len(models) == 0 && !done {
342+
// if it's not done, we just reached maxBulkWriteCount, we need to process more
343+
continue
344+
} else if len(models) == 0 && done {
345+
// it's done and there's nothing to update
336346
return nil
337347
}
338348

0 commit comments

Comments
 (0)