@@ -178,6 +178,18 @@ func (b *Backup) doLogical(
178
178
return errors .Wrap (err , "set shard's StatusDumpDone" )
179
179
}
180
180
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
+
181
193
lastSavedTS , oplogSize , err := stopOplogSlicer ()
182
194
if err != nil {
183
195
return errors .Wrap (err , "oplog" )
@@ -189,22 +201,12 @@ func (b *Backup) doLogical(
189
201
}
190
202
191
203
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
-
197
204
err = b .setClusterLastWrite (ctx , bcp .Name )
198
205
if err != nil {
199
206
return errors .Wrap (err , "set cluster last write ts" )
200
207
}
201
208
}
202
209
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
-
208
210
err = IncBackupSize (ctx , b .leadConn , bcp .Name , snapshotSize + oplogSize )
209
211
if err != nil {
210
212
return errors .Wrap (err , "inc backup size" )
0 commit comments