s3 timeout errors with duplicity on centos 5.4

Posted on 13 April 2010

This is a highly specific and geeky kind of post, but I couldn’t find anything about this problem anywhere else on the net. Maybe by writing it here, I might help some other poor bastard who is having problems with duplicity on CentOS 5.4.

Just briefly, I had some really old version of duplicity installed – god knows which repository it originally came from but it definitely isn’t in any of the base CentOS repos right now. Doesn’t seem to be on RPMForge either. I mucked around trying to install it from an RPM downloaded from the duplicity project page, but was running into problems with librsync dependencies.

Thankfully, I decided to go looking for a repo that had a more updated version of duplicity. It turns out the Fedora EPEL repository has duplicity-0.6.06 in it, which is the second most recent version. Better! However, this version still has the S3 timeout bug:

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 463, in ?
    with_tempdir(main)
  File "/usr/bin/duplicity", line 458, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 390, in main
    globals.archive_dir).set_values()
  File "/usr/lib/python2.4/site-packages/duplicity/collections.py", line 476, in set_values
    backend_filename_list = self.backend.list()
  File "/usr/lib/python2.4/site-packages/duplicity/backends.py", line 802, in list
    for k in self.bucket.list(prefix = self.key_prefix, delimiter = '/'):
  File "/usr/lib/python2.4/site-packages/boto/s3/bucketlistresultset.py", line 30, in bucket_lister
    delimiter=delimiter)
  File "/usr/lib/python2.4/site-packages/boto/s3/bucket.py", line 205, in get_all_keys
    body = response.read()
  File "/usr/lib/python2.4/httplib.py", line 460, in read
    return self._read_chunked(amt)
  File "/usr/lib/python2.4/httplib.py", line 509, in _read_chunked
    value += self._safe_read(chunk_left)
  File "/usr/lib/python2.4/httplib.py", line 555, in _safe_read
    chunk = self.fp.read(min(amt, MAXAMOUNT))
  File "/usr/lib/python2.4/httplib.py", line 971, in read
    s = self._read()
  File "/usr/lib/python2.4/httplib.py", line 947, in _read
    buf = self._ssl.read(self._bufsize)
socket.sslerror: The read operation timed out

The good news is that a patch exists for this bug (#505739) and it has been committed to the latest version of duplicity. Until the EPEL repo is updated with the latest package, it’s as simple as grabbing the diff file from that thread, navigating to /usr/lib/python2.4/site-packages/ and then running “patch -p0 < wherever_you_put_the_patch.diff“.

Then voilĂ ! S3 backups with duplicity shouldn’t fail with that timeout error any more.


No responses yet. You could be the first!

Leave a Response

You must be logged in to post a comment.

Recent Posts

Tag Cloud

aspartame audio biochemistry books busy climate climate change communication diet coke dj gear driving email facebook finance gadgets geek gfc google hacking holidays idiots internet iphone methanol mining miscellaneous movies myths new zealand paranoia parody photos picture politics random religion robots science security skepticism toys video volcano wank work

Meta

slightlyodd is proudly powered by WordPress and the SubtleFlux theme.

Copyright © slightlyodd