Comment 2 for bug 780270

Revision history for this message
Kenneth Loafman (kenneth-loafman) wrote : Re: [Bug 780270] Re: Deja Dup crashes on long path names

Actually, its not even that long of a filename. It is running out of
memory. That's a new one. It ran out when allocating a buffer for
os.lstat(), which is typically not that big.

On Mon, May 9, 2011 at 11:04 PM, Michael Terry
<email address hidden>wrote:

> Ken, this looks interesting.
>
> If it was really choking on the length of the filename, I would expect
> errno 36, ENAMETOOLONG. But errno 12 is ENOMEM, which means the kernel
> ran out of memory... Seems a pretty lowlevel error.
>
> Do you get this repeatably?
>
> ** Also affects: duplicity
> Importance: Undecided
> Status: New
>
> --
> You received this bug notification because you are subscribed to
> Duplicity.
> https://bugs.launchpad.net/bugs/780270
>
> Title:
> Deja Dup crashes on long path names
>
> Status in Déjà Dup Backup Tool:
> New
> Status in Duplicity - Bandwidth Efficient Encrypted Backup:
> New
>
> Bug description:
> I have a couple months of backups made by BackInTime and wanted to see
> how much space Deja Dup's compression would save me on a single
> backup. Deja Dup is crashing on making a copy of this backup due to
> the length of the path name.
>
> Traceback (most recent call last):
> File "/usr/bin/duplicity", line 1262, in <module>
> with_tempdir(main)
> File "/usr/bin/duplicity", line 1255, in with_tempdir
> fn()
> File "/usr/bin/duplicity", line 1228, in main
> full_backup(col_stats)
> File "/usr/bin/duplicity", line 408, in full_backup
> bytes_written = dummy_backup(tarblock_iter)
> File "/usr/bin/duplicity", line 161, in dummy_backup
> while tarblock_iter.next():
> File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 505,
> in next
> result = self.process(self.input_iter.next(), size)
> File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 187,
> in get_delta_iter
> for new_path, sig_path in collated:
> File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 279,
> in collate2iters
> for relem1 in riter1:
> File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line
> 174, in Iterate
> subpath, val = diryield_stack[-1].next()
> File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line
> 143, in diryield
> error_handler, Path.append, (path, filename))
> File "/usr/lib/python2.7/dist-packages/duplicity/robust.py", line 37, in
> check_common_error
> return function(*args)
> File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 507, in
> append
> return self.__class__(self.base, self.index + (ext,))
> File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 487, in
> __init__
> self.setdata()
> File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 492, in
> setdata
> self.stat = os.lstat(self.name)
> OSError: [Errno 12] Cannot allocate memory:
> '/mnt/backups/backintime/glados/chris/1/20110509-000003-101/backup/home/chris/Courses/Quantum
> Conductance/Fractional quantization of the ballistic conductance in electron
> and hole systems - Magnusson.pdf'
>
> I am using Ubuntu 11.04 with the following packages:
> deja-dup 18.1.1-0ubuntu1
> duplicity 0.6.13-0ubuntu1
>