@@ -2548,11 +2548,12 @@ func (r *PhysRestore) prepareBackup(ctx context.Context, backupName string) erro
2548
2548
2549
2549
setName := mapRevRS (r .nodeInfo .SetName )
2550
2550
2551
+ r .log .Debug ("restore opts: --fallback-enabled: %t; --allow-partly-done: %t" ,
2552
+ r .fallback , r .allowPartlyDone )
2551
2553
if r .fallback && r .bcp .RS (setName ) != nil {
2552
2554
err = r .checkDiskSpace (r .bcp .RS (setName ).Size )
2553
2555
if err != nil {
2554
- return errors .Wrap (err , "not enough disk space for fallback strategy, " +
2555
- "consider using --fallback-enabled=false" )
2556
+ return errors .Wrap (err , "check disk space" )
2556
2557
}
2557
2558
}
2558
2559
@@ -2607,6 +2608,11 @@ func (r *PhysRestore) checkMongod(needVersion string) (version string, err error
2607
2608
// It returns error in case when backup size is larger than free space on the disk.
2608
2609
// It also includes min disk space requirement of 10GiB.
2609
2610
func (r * PhysRestore ) checkDiskSpace (bcpSize int64 ) error {
2611
+ if bcpSize == 0 {
2612
+ return errors .New ("unable to apply fallback strategy for unknown backup size, " +
2613
+ "consider using --fallback-enabled=false" )
2614
+ }
2615
+
2610
2616
var stat syscall.Statfs_t
2611
2617
err := syscall .Statfs (r .dbpath , & stat )
2612
2618
if err != nil {
@@ -2615,8 +2621,13 @@ func (r *PhysRestore) checkDiskSpace(bcpSize int64) error {
2615
2621
2616
2622
free := int64 (stat .Bavail ) * int64 (stat .Bsize )
2617
2623
tenGiB := 10 * (1 << 30 )
2618
- if bcpSize + int64 (tenGiB ) >= free {
2619
- return errors .Errorf ("not enough disk space, free=%d, backup size=%d" , free , bcpSize )
2624
+ totalReqSize := bcpSize + int64 (tenGiB )
2625
+ r .log .Debug ("free space on disk: %s; backup size: %s; total requested free size: %s" ,
2626
+ storage .PrettySize (free ), storage .PrettySize (bcpSize ), storage .PrettySize (totalReqSize ))
2627
+
2628
+ if totalReqSize >= free {
2629
+ return errors .New ("not enough disk space for fallback strategy, " +
2630
+ "consider using --fallback-enabled=false" )
2620
2631
}
2621
2632
2622
2633
return nil
0 commit comments