2 directories with diff casing == Assertion error during restore

Bug #1716659 reported by Ashley Flynn
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Duplicity
Invalid
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.

Revision history for this message
Kenneth Loafman (kenneth-loafman) wrote :

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.