"No backup chains found" restoring with PCA backend (lp:#1818355)

[Original report](https://bugs.launchpad.net/bugs/1818355) created by **Thierry B. (thierrybo2)**
```
Duplicity 0.8 (rev. 1348)
/usr/bin/python2 2.7.13 (default, Sep 26 2018, 18:42:22)
System:    Host: thierrybo-desk Kernel: 4.19.0-0.bpo.2-amd64 x86_64 (64
bit) Desktop: Openbox 3.6.1
           Distro: Devuan GNU/Linux ascii

Just a test folder to backup:~/Sys/bzr.repositories/duplicity/bin/

ls ~/Sys/bzr.repositories/duplicity/bin/

duplicity  duplicity.1  rdiffdir  rdiffdir.1

config.json used:

[
    {
        "description": "Cold storage",
        "url": "pca://thierrybo-desk_tests",
        "prefixes": ["cold_"]
     },
     {
         "description": "Hot storage",
         "url": "swift://thierrybo-desk_tests_hot",
         "prefixes": ["hot_"]
     }
 ]

First backup :

duplicity --verbosity notice --num-retries 3 --asynchronous-upload
--volsize 100 --file-prefix-manifest 'hot_' --file-prefix-signature 'hot_'
--file-prefix-archive 'cold_'  ~/Sys/bzr.repositories/duplicity/bin/
"multi://$HOME/.config/duplicity/config.json?mode=mirror&onfail=abort"
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Sun Feb 17 23:07:05 2019
GnuPG passphrase:
Retype passphrase to confirm:
--------------[ Backup Statistics ]--------------
StartTime 1551552750.93 (Sat Mar  2 19:52:30 2019)
EndTime 1551552750.94 (Sat Mar  2 19:52:30 2019)
ElapsedTime 0.01 (0.01 seconds)
SourceFiles 5
SourceFileSize 156558 (153 KB)
NewFiles 0
NewFileSize 0 (0 bytes)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 0
RawDeltaSize 0 (0 bytes)
TotalDestinationSizeChange 110 (110 bytes)
Errors 0
-------------------------------------------------


Then I try to restore rdiffdir in a new directory :

duplicity --verbosity debug --file-to-restore rdiffdir
"multi://$HOME/.config/duplicity/config.json?mode=mirror&onfail=abort"
"$HOME/Documents/restore_duplicity"
Using archive dir:
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6
Using backup name: 3236aff760bf135cad84bed69e2b2ff6
GPG binary is gpg, version (2, 1, 18)
Import of duplicity.backends.adbackend Succeeded
Import of duplicity.backends.azurebackend Succeeded
Import of duplicity.backends.b2backend Succeeded
Import of duplicity.backends.botobackend Succeeded
Import of duplicity.backends.cfbackend Succeeded
Import of duplicity.backends.dpbxbackend Succeeded
Import of duplicity.backends.gdocsbackend Succeeded
Import of duplicity.backends.giobackend Succeeded
Import of duplicity.backends.hsibackend Succeeded
Import of duplicity.backends.hubicbackend Succeeded
Import of duplicity.backends.imapbackend Succeeded
Import of duplicity.backends.jottacloudbackend Succeeded
Import of duplicity.backends.lftpbackend Succeeded
Import of duplicity.backends.localbackend Succeeded
Import of duplicity.backends.mediafirebackend Succeeded
Import of duplicity.backends.megabackend Succeeded
Import of duplicity.backends.multibackend Succeeded
Import of duplicity.backends.ncftpbackend Succeeded
Import of duplicity.backends.onedrivebackend Succeeded
Import of duplicity.backends.par2backend Succeeded
Import of duplicity.backends.pcabackend Succeeded
Import of duplicity.backends.pydrivebackend Succeeded
Import of duplicity.backends.rsyncbackend Succeeded
Import of duplicity.backends.ssh_paramiko_backend Succeeded
Import of duplicity.backends.ssh_pexpect_backend Succeeded
Import of duplicity.backends.swiftbackend Succeeded
Import of duplicity.backends.sxbackend Succeeded
Import of duplicity.backends.tahoebackend Succeeded
Import of duplicity.backends.webdavbackend Succeeded
MultiBackend: use store pca://thierrybo-desk_tests
Multibackend: register affinity for prefix cold_
MultiBackend: use store swift://thierrybo-desk_tests_hot
Multibackend: register affinity for prefix hot_
Main action: restore
Acquiring lockfile
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6/lockfile
================================================================================
duplicity $version ($reldate)
Args: /usr/local/bin/duplicity --verbosity debug --file-to-restore rdiffdir
multi:///home/thierrybo/.config/duplicity/config.json?mode=mirror&onfail=abort
/home/thierrybo/Documents/restore_duplicity
Linux thierrybo-desk 4.19.0-0.bpo.2-amd64 #1 SMP Debian 4.19.16-1~bpo9+1
(2019-02-07) x86_64
/usr/bin/python2 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516]
================================================================================
Using temporary directory /tmp/duplicity-oVwRTf-tempdir
Registering (mkstemp) temporary file /tmp/duplicity-oVwRTf-tempdir/mkstemp-
Zbuw0h-1
Temp has 847536128 available, backup will use approx 272629760.
MultiBackend: list from pca://thierrybo-desk_tests: ['cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg', 'cold_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg']
MultiBackend: list from swift://thierrybo-desk_tests_hot: ['hot_duplicity-
full-signatures.20190217T220705Z.sigtar.gpg', 'hot_duplicity-
full.20190217T220705Z.manifest.gpg', 'hot_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg', 'hot_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg', 'hot_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg', 'hot_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg', 'hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg']
MultiBackend: combined list: ['hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg',
'hot_duplicity-full-signatures.20190217T220705Z.sigtar.gpg',
'cold_duplicity-inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg',
'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg',
'hot_duplicity-inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg',
'hot_duplicity-inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg',
'cold_duplicity-inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg',
'hot_duplicity-inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg',
'cold_duplicity-inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg',
'hot_duplicity-inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg',
'hot_duplicity-full.20190217T220705Z.manifest.gpg', 'cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg', 'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg',
'cold_duplicity-inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg']
Local and Remote metadata are synchronized, no sync needed.
MultiBackend: list from pca://thierrybo-desk_tests: ['cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg', 'cold_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg',
'cold_duplicity-inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg']
MultiBackend: list from swift://thierrybo-desk_tests_hot: ['hot_duplicity-
full-signatures.20190217T220705Z.sigtar.gpg', 'hot_duplicity-
full.20190217T220705Z.manifest.gpg', 'hot_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg', 'hot_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg', 'hot_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg', 'hot_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg', 'hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg']
MultiBackend: combined list: ['hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg',
'hot_duplicity-full-signatures.20190217T220705Z.sigtar.gpg',
'cold_duplicity-inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg',
'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg',
'hot_duplicity-inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg',
'hot_duplicity-inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg',
'cold_duplicity-inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg',
'hot_duplicity-inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg',
'cold_duplicity-inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg',
'hot_duplicity-inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg',
'hot_duplicity-full.20190217T220705Z.manifest.gpg', 'cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg', 'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg',
'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg',
'cold_duplicity-inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg']
15 files exist on backend
11 files exist in cache
Extracting backup chains from list of files: [u'hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg',
u'hot_duplicity-full-signatures.20190217T220705Z.sigtar.gpg',
u'cold_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg',
u'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg',
u'hot_duplicity-inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg',
u'hot_duplicity-inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg',
u'cold_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg',
u'hot_duplicity-inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg',
u'cold_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg',
u'hot_duplicity-inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg',
u'hot_duplicity-full.20190217T220705Z.manifest.gpg', u'cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg', u'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg',
u'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg',
u'cold_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg']
File hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-new-
signatures.20190217T220705Z.to.20190217T221019Z.sigtar.gpg'
File hot_duplicity-full-signatures.20190217T220705Z.sigtar.gpg is not part
of a known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-full-
signatures.20190217T220705Z.sigtar.gpg'
File cold_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'cold_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.vol1.difftar.gpg'
File hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-new-
signatures.20190217T222947Z.to.20190217T231512Z.sigtar.gpg'
File hot_duplicity-inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg is
not part of a known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.manifest.gpg'
File hot_duplicity-inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg is
not part of a known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.manifest.gpg'
File cold_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'cold_duplicity-
inc.20190217T222947Z.to.20190217T231512Z.vol1.difftar.gpg'
File hot_duplicity-inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg is
not part of a known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.manifest.gpg'
File cold_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'cold_duplicity-
inc.20190217T220705Z.to.20190217T221019Z.vol1.difftar.gpg'
File hot_duplicity-inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg is
not part of a known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-
inc.20190217T231512Z.to.20190302T185220Z.manifest.gpg'
File hot_duplicity-full.20190217T220705Z.manifest.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-
full.20190217T220705Z.manifest.gpg'
File cold_duplicity-full.20190217T220705Z.vol1.difftar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'cold_duplicity-
full.20190217T220705Z.vol1.difftar.gpg'
File hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-new-
signatures.20190217T231512Z.to.20190302T185220Z.sigtar.gpg'
File hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'hot_duplicity-new-
signatures.20190217T221019Z.to.20190217T222947Z.sigtar.gpg'
File cold_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg is not part of a
known set; creating new set
Ignoring file (rejected by backup set) 'cold_duplicity-
inc.20190217T221019Z.to.20190217T222947Z.vol1.difftar.gpg'
Last full backup date: none
Collection Status
-----------------
Connecting with backend: BackendWrapper
Archive dir:
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6

Found 0 secondary backup chains.
No backup chains with active signatures found
No orphaned or incomplete backup sets found.
PASSPHRASE variable not set, asking user.
GnuPG passphrase:
Releasing lockfile
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6/lockfile
Removing still remembered temporary file /tmp/duplicity-oVwRTf-
tempdir/mkstemp-Zbuw0h-1
Releasing lockfile
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6/lockfile
Traceback (innermost last):
  File "/usr/local/bin/duplicity", line 1678, in <module>
    with_tempdir(main)
  File "/usr/local/bin/duplicity", line 1664, in with_tempdir
    fn()
  File "/usr/local/bin/duplicity", line 1510, in main
    do_backup(action)
  File "/usr/local/bin/duplicity", line 1590, in do_backup
    restore(col_stats)
  File "/usr/local/bin/duplicity", line 724, in restore
    restore_get_patched_rop_iter(col_stats)):
  File "/usr/local/bin/duplicity", line 746, in
restore_get_patched_rop_iter
    backup_chain = col_stats.get_backup_chain_at_time(time)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/collections.py",
line 1002, in get_backup_chain_at_time
    raise CollectionsError(u"No backup chains found")
 CollectionsError: No backup chains found

Releasing lockfile
/home/thierrybo/.cache/duplicity/3236aff760bf135cad84bed69e2b2ff6/lockfile
```

Story points: 6.0