swift backend: limit http concurrency in Save(), Stat(), Test(), Remove(),

List().

move comment regarding problematic List() backend api (it's s3's ListObjects
that has a problem, NOT swift's ObjectsWalk).

As per discussion in PR #1399.
This commit is contained in:
George Armhold 2017-11-02 18:29:32 -04:00
parent 8515d093e0
commit 0268d0e7d6
2 changed files with 20 additions and 8 deletions

View file

@ -433,6 +433,9 @@ func (be *Backend) List(ctx context.Context, t restic.FileType) <-chan string {
prefix += "/"
}
// NB: unfortunately we can't protect this with be.sem.GetToken() here.
// Doing so would enable a deadlock situation (gh-1399), as ListObjects()
// starts its own goroutine and returns results via a channel.
listresp := be.client.ListObjects(be.cfg.Bucket, prefix, true, ctx.Done())
go func() {