@@ -557,8 +557,6 @@ func ResolveBackupManifests(
557
557
mem * mon.BoundAccount ,
558
558
defaultCollectionURI string ,
559
559
collectionURIs []string ,
560
- baseStores []cloud.ExternalStorage ,
561
- incStores []cloud.ExternalStorage ,
562
560
mkStore cloud.ExternalStorageFromURIFactory ,
563
561
resolvedSubdir string ,
564
562
fullyResolvedBaseDirectory []string ,
@@ -590,7 +588,7 @@ func ResolveBackupManifests(
590
588
591
589
if ! ReadBackupIndexEnabled .Get (& execCfg .Settings .SV ) || ! exists || isCustomIncLocation {
592
590
return legacyResolveBackupManifests (
593
- ctx , execCfg , mem , defaultCollectionURI , baseStores , incStores , mkStore ,
591
+ ctx , execCfg , mem , defaultCollectionURI , mkStore ,
594
592
resolvedSubdir , fullyResolvedBaseDirectory , fullyResolvedIncrementalsDirectory ,
595
593
endTime , encryption , kmsEnv , user , includeSkipped , includeCompacted ,
596
594
)
@@ -609,8 +607,6 @@ func legacyResolveBackupManifests(
609
607
execCfg * sql.ExecutorConfig ,
610
608
mem * mon.BoundAccount ,
611
609
defaultCollectionURI string ,
612
- baseStores []cloud.ExternalStorage ,
613
- incStores []cloud.ExternalStorage ,
614
610
mkStore cloud.ExternalStorageFromURIFactory ,
615
611
resolvedSubdir string ,
616
612
fullyResolvedBaseDirectory []string ,
@@ -637,6 +633,27 @@ func legacyResolveBackupManifests(
637
633
mem .Shrink (ctx , ownedMemSize )
638
634
}
639
635
}()
636
+
637
+ baseStores , baseCleanupFn , err := MakeBackupDestinationStores (ctx , user , mkStore , fullyResolvedBaseDirectory )
638
+ if err != nil {
639
+ return nil , nil , nil , 0 , err
640
+ }
641
+ defer func () {
642
+ if err := baseCleanupFn (); err != nil {
643
+ log .Dev .Warningf (ctx , "failed to close base store: %+v" , err )
644
+ }
645
+ }()
646
+
647
+ incStores , incCleanupFn , err := MakeBackupDestinationStores (ctx , user , mkStore , fullyResolvedIncrementalsDirectory )
648
+ if err != nil {
649
+ return nil , nil , nil , 0 , err
650
+ }
651
+ defer func () {
652
+ if err := incCleanupFn (); err != nil {
653
+ log .Dev .Warningf (ctx , "failed to close inc store: %+v" , err )
654
+ }
655
+ }()
656
+
640
657
baseManifest , memSize , err := backupinfo .ReadBackupManifestFromStore (ctx , mem , baseStores [0 ], fullyResolvedBaseDirectory [0 ],
641
658
encryption , kmsEnv )
642
659
if err != nil {
@@ -646,11 +663,6 @@ func legacyResolveBackupManifests(
646
663
647
664
var incrementalBackups []string
648
665
if len (incStores ) > 0 {
649
- rootStore , err := mkStore (ctx , defaultCollectionURI , user )
650
- if err != nil {
651
- return nil , nil , nil , 0 , err
652
- }
653
- defer rootStore .Close ()
654
666
incrementalBackups , err = LegacyFindPriorBackups (ctx , incStores [0 ], includeManifest )
655
667
if err != nil {
656
668
return nil , nil , nil , 0 , err
@@ -771,23 +783,15 @@ func indexedResolveBackupManifests(
771
783
ctx , sp := tracing .ChildSpan (ctx , "backupdest.ResolveBackupManifestsWithIndexes" )
772
784
defer sp .Finish ()
773
785
774
- rootStores := make ([]cloud.ExternalStorage , 0 , len (collectionURIs ))
786
+ rootStores , rootCleanupFn , err := MakeBackupDestinationStores (ctx , user , mkStore , collectionURIs )
787
+ if err != nil {
788
+ return nil , nil , nil , 0 , err
789
+ }
775
790
defer func () {
776
- for _ , store := range rootStores {
777
- if store != nil {
778
- if err := store .Close (); err != nil {
779
- log .Dev .Errorf (ctx , "error closing store: %v" , err )
780
- }
781
- }
791
+ if err := rootCleanupFn (); err != nil {
792
+ log .Dev .Warningf (ctx , "failed to close collection store: %s" , err )
782
793
}
783
794
}()
784
- for _ , uri := range collectionURIs {
785
- store , err := mkStore (ctx , uri , user )
786
- if err != nil {
787
- return nil , nil , nil , 0 , err
788
- }
789
- rootStores = append (rootStores , store )
790
- }
791
795
792
796
indexes , err := GetBackupTreeIndexMetadata (
793
797
ctx , rootStores [0 ], resolvedSubdir ,
0 commit comments