2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-22 21:05:10 +00:00

Merge pull request #3063 from aawsome/fix-3062

Fix #3062
This commit is contained in:
Alexander Neumann 2020-11-05 19:36:40 +01:00 committed by GitHub
commit 4a9b05aff1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,7 +30,7 @@ func Repack(ctx context.Context, repo restic.Repository, packs restic.IDSet, kee
debug.Log("repacking %d packs while keeping %d blobs", len(packs), len(keepBlobs)) debug.Log("repacking %d packs while keeping %d blobs", len(packs), len(keepBlobs))
wg, ctx := errgroup.WithContext(ctx) wg, wgCtx := errgroup.WithContext(ctx)
downloadQueue := make(chan restic.ID) downloadQueue := make(chan restic.ID)
wg.Go(func() error { wg.Go(func() error {
@ -38,8 +38,8 @@ func Repack(ctx context.Context, repo restic.Repository, packs restic.IDSet, kee
for packID := range packs { for packID := range packs {
select { select {
case downloadQueue <- packID: case downloadQueue <- packID:
case <-ctx.Done(): case <-wgCtx.Done():
return ctx.Err() return wgCtx.Err()
} }
} }
return nil return nil
@ -60,7 +60,7 @@ func Repack(ctx context.Context, repo restic.Repository, packs restic.IDSet, kee
// load the complete pack into a temp file // load the complete pack into a temp file
h := restic.Handle{Type: restic.PackFile, Name: packID.String()} h := restic.Handle{Type: restic.PackFile, Name: packID.String()}
tempfile, hash, packLength, err := DownloadAndHash(ctx, repo.Backend(), h) tempfile, hash, packLength, err := DownloadAndHash(wgCtx, repo.Backend(), h)
if err != nil { if err != nil {
return errors.Wrap(err, "Repack") return errors.Wrap(err, "Repack")
} }
@ -73,8 +73,8 @@ func Repack(ctx context.Context, repo restic.Repository, packs restic.IDSet, kee
select { select {
case processQueue <- repackJob{tempfile, hash, packLength}: case processQueue <- repackJob{tempfile, hash, packLength}:
case <-ctx.Done(): case <-wgCtx.Done():
return ctx.Err() return wgCtx.Err()
} }
} }
return nil return nil
@ -157,7 +157,7 @@ func Repack(ctx context.Context, repo restic.Repository, packs restic.IDSet, kee
} }
// We do want to save already saved blobs! // We do want to save already saved blobs!
_, _, err = repo.SaveBlob(ctx, entry.Type, plaintext, entry.ID, true) _, _, err = repo.SaveBlob(wgCtx, entry.Type, plaintext, entry.ID, true)
if err != nil { if err != nil {
return err return err
} }