AssertionError re: BLOCKSIZE in tarfile.py when fields exceed expected size.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Duplicity |
Fix Released
|
Undecided
|
Unassigned | ||
duplicity (Debian) |
New
|
Undecided
|
Unassigned |
Bug Description
When asking duplicity to perform a backup, it fails with a traceback.
Note: this error only affects a particular directory.. if I use the same options on a different directory, everything runs fine. Also, running the command on the failing directory with --dry-run works fine.. this bug occurs every time it is run on this particular directory.
There is nothing special about this directory that I'm aware of.. its one of dozens of home directories, all created/managed by a control panel product for web hosting, so the directories have identical layouts and permissions and whatnot.
Got this error -
Traceback (most recent call last):
File "/usr/bin/
with_
File "/usr/bin/
fn()
File "/usr/bin/
full_
File "/usr/bin/
globals.
File "/usr/bin/
globals.
File "/usr/lib/
data = block_iter.
File "/usr/lib/
result = self.process(
File "/usr/lib/
(new_path, sig_path, sigTarFile))
File "/usr/lib/
return function(*args)
File "/usr/lib/
sigTarFile.
File "/usr/lib/
assert len(full_headers) % BLOCKSIZE == 0
AssertionError
duplicity 0.6.06
Args: /usr/bin/duplicity -v6 --log-file /tmp/duplicityl
eth:<email address hidden>
INFO 1
. Linux xxxx.net 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 i686
INFO 1
. /usr/bin/python 2.4.3 (#1, Sep 3 2009, 15:37:12)
. [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)]
tail /tmp/duplicityl
INFO 4 'etc/svn-
. A etc/svn-access.conf
INFO 4 'etc/svn.
. A etc/svn.
INFO 4 'homes'
. A homes
description: | updated |
Changed in duplicity: | |
status: | In Progress → Incomplete |
assignee: | Kenneth Loafman (kenneth-loafman) → nobody |
Changed in duplicity: | |
milestone: | 0.6.07 → none |
Changed in duplicity: | |
status: | Incomplete → New |
importance: | Medium → Undecided |
Changed in duplicity: | |
status: | New → Fix Released |
By the way - onice this happens, duplicity doesn't exit, it just sits there forever and has to be killed.
Strace of this issue..
futex(0x82ac690, FUTEX_WAKE, 1) = 0 "/tmp/duplicity -vNyyyB- tempdir/ mkstemp- 9aaLkR- 1") = 0 "/tmp/duplicity -vNyyyB- tempdir/ mktemp- M808f7- 2") = 0 /tmp/duplicity- vNyyyB- tempdir" ) = 0 usr/bin/ duplicity" , O_RDONLY| O_LARGEFILE) = 8 bin/duplicity\ ", lin"..., 45 File "/usr/bin/ duplicity" , line 1236, in ? S_IFREG| 0755, st_size=46428, ...}) = 0 PROT_WRITE, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0) = 0xb7fc4000 bin/python\ n# -*- Mode:Pyt"..., 4096) = 4096 getpass( \"Retype passphra"..., 4096) = 4096 local_manifest( )\n "..., 4096) = 4096 globals. select, \n "..., 4096) = 4096 archive_ dir.appe" ..., 4096) = 4096 main)\n" , 19with_ tempdir( main) usr/bin/ duplicity" , O_RDONLY| O_LARGEFILE) = 8 bin/duplicity\ ", lin"..., 56 File "/usr/bin/ duplicity" , line 1229, in with_tempdir S_IFREG| 0755, st_size=46428, ...}) = 0 PROT_WRITE, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0) = 0xb7fc4000 bin/python\ n# -*- Mode:Pyt"..., 4096) = 4096 getpass( \"Retype passphra"..., 4096) = 4096 local_manifest( )\n "..., 4096) = 4096 globals. select, \n "..., 4096) = 4096 archive_ dir.appe" ..., 4096) = 4096
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x8241bc8, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
unlink(
futex(0x82ac690, FUTEX_WAKE, 1) = 0
futex(0x82ac690, FUTEX_WAKE, 1) = 0
unlink(
futex(0x82ac690, FUTEX_WAKE, 1) = 0
rmdir("
futex(0x829c898, FUTEX_WAKE, 1) = 0
write(2, "Traceback (most recent call last"..., 35Traceback (most recent call last):
) = 35
open("/
write(2, " File \"/usr/
) = 45
fstat64(8, {st_mode=
mmap2(NULL, 4096, PROT_READ|
read(8, "#!/usr/
read(8, "getpass.
read(8, "kup.get_
read(8, "st=True,\n "..., 4096) = 4096
read(8, "fdir.DirDelta(
read(8, "c_fileobj(backend, filename, vol"..., 4096) = 4096
read(8, " globals.
read(8, " if ext in suffixes:\n "..., 4096) = 4096
read(8, "edpass):\n globals"..., 4096) = 4096
read(8, "ackup.time:\n self.typ"..., 4096) = 4096
read(8, "st_backup info\n "..., 4096) = 4096
write(2, " ", 4 ) = 4
write(2, "with_tempdir(
) = 19
close(8) = 0
munmap(0xb7fc4000, 4096) = 0
open("/
write(2, " File \"/usr/
) = 56
fstat64(8, {st_mode=
mmap2(NULL, 4096, PROT_READ|
read(8, "#!/usr/
read(8, "getpass.
read(8, "kup.get_
read(8, "st=True,\n "..., 4096) = 4096
read(8, "fdir.DirDelta(
read(8, "c_fileobj(backend, filename, vol"..., 4096) = 4096
read(8, " globals.
read(8, " if ext in suffixes:\n "..., 4096) = 4096
read(8, "edpass):\n globals"..., 4096) = 4096
read(8, "ackup.time:\n self.typ"..., 4096) = 4096
read(8, "st_backup info\n "..., 4096) = 4096
write(2, " ", 4 ) ...