2 directories with diff casing == Assertion error during restore

Bug #1716659 reported by Ashley Flynn on 2017-09-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Duplicity
Undecided
Unassigned

Bug Description

- duplicity 0.7.14
- python 2.7.10
- macOS el capitan 10.11.16

If there are 2 directories with the same name but differently cased then I get an assertion error when restoring

Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 1548, in <module>
    with_tempdir(main)
  File "/usr/local/bin/duplicity", line 1534, in with_tempdir
    fn()
  File "/usr/local/bin/duplicity", line 1383, in main
    do_backup(action)
  File "/usr/local/bin/duplicity", line 1462, in do_backup
    restore(col_stats)
  File "/usr/local/bin/duplicity", line 729, in restore
    restore_get_patched_rop_iter(col_stats)):
  File "/usr/local/Cellar/duplicity/0.7.14_1/libexec/lib/python2.7/site-packages/duplicity/patchdir.py", line 560, in Write_ROPaths
    ITR(ropath.index, ropath)
  File "/usr/local/Cellar/duplicity/0.7.14_1/libexec/lib/python2.7/site-packages/duplicity/lazy.py", line 347, in __call__
    self.process_w_branch(index, branch, args)
  File "/usr/local/Cellar/duplicity/0.7.14_1/libexec/lib/python2.7/site-packages/duplicity/lazy.py", line 302, in process_w_branch
    branch.start_process, args)
  File "/usr/local/Cellar/duplicity/0.7.14_1/libexec/lib/python2.7/site-packages/duplicity/robust.py", line 38, in check_common_error
    return function(*args)
  File "/usr/local/Cellar/duplicity/0.7.14_1/libexec/lib/python2.7/site-packages/duplicity/patchdir.py", line 593, in start_process
    assert index == (), index
AssertionError: ('media', 'catalog', 'product', 'b')

Directory in question

https://www.dropbox.com/s/t9myvo9mizihjex/Screenshot%202017-09-12%2012.32.49.png?dl=0

I also had this exact issue with a directory containing the following directories

- en_us
- en_US

which restored fine when I renamed one of them to something else.

Marking this invalid since it will never work on MacOS. Both Windows and Mac are case preserving on creation, case insensitive on search, while Linux is case preserving and case sensitive. Thus the following problem occurs on restore:

ken@dione:~$ mkdir A
ken@dione:~$ mkdir a
mkdir: a: File exists

and is repeatable in both directions. Duplicity assumes Linux semantics on filenames.

You can force MacOS to be case sensitive, but you have to do it during the install, IIRC.

Changed in duplicity:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers