Pyrax backend fail when using Hubic storage

Bug #1408289 reported by Stephane ANGOT on 2015-01-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Duplicity
Medium
Unassigned

Bug Description

When using HUBIC as backend, duplicity fails after some time :

Duplicity revision 1043
Python 2.7.8
Pyrax 1.9.3
OS : Fedora21
Target storage Hubic

Command line : /usr/local/bin/duplicity full -v9 --log-file duplicity.log --encrypt-key 80D9B390 /snapshots/Backup/var/lib/libvirt cf+hubic://KVM_libvirt_backup4

Here are the errors, see attached log for full details :

DEBUG 1
. Backtrace of previous error: Traceback (innermost last):
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backend.py", line 361, in inner_retry
. return fn(self, *args)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backend.py", line 511, in put
. self.__do_put(source_path, remote_filename)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backend.py", line 497, in __do_put
. self.backend._put(source_path, remote_filename)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backends/_cf_pyrax.py", line 83, in _put
. self.container.upload_file(source_path.name, remote_filename)
. File "/usr/lib/python2.7/site-packages/pyrax/object_storage.py", line 478, in upload_file
. return_none=return_none)
. File "/usr/lib/python2.7/site-packages/pyrax/object_storage.py", line 430, in create
. return_none=return_none)
. File "/usr/lib/python2.7/site-packages/pyrax/object_storage.py", line 1873, in create
. chunk_size, headers)
. File "/usr/lib/python2.7/site-packages/pyrax/object_storage.py", line 1901, in _upload
. chunked=chunked, chunk_size=chunk_size, headers=headers)
. File "/usr/lib/python2.7/site-packages/pyrax/object_storage.py", line 1943, in _store_object
. headers=headers)
. File "/usr/lib/python2.7/site-packages/pyrax/client.py", line 260, in method_put
. return self._api_request(uri, "PUT", **kwargs)
. File "/usr/lib/python2.7/site-packages/pyrax/client.py", line 231, in _api_request
. resp, body = self._time_request(safe_uri, method, **kwargs)
. File "/usr/lib/python2.7/site-packages/pyrax/client.py", line 193, in _time_request
. resp, body = self.request(uri, method, **kwargs)
. File "/usr/lib/python2.7/site-packages/pyrax/client.py", line 184, in request
. resp, body = pyrax.http.request(method, uri, *args, **kwargs)
. File "/usr/lib/python2.7/site-packages/pyrax/http.py", line 76, in request
. raise exc.from_response(resp, body)
. ClientException: <html><h1>Request Timeout</h1><p>The server has waited too long for the request to be sent by the client.</p></html> (HTTP 408)
.

DEBUG 1
. Releasing lockfile <lockfile.linklockfile.LinkLockFile instance at 0x7f7a1e672a28>

DEBUG 1
. Removing still remembered temporary file /tmp/duplicity-zIZCoO-tempdir/mkstemp-gOfVg5-1

DEBUG 1
. Removing still remembered temporary file /tmp/duplicity-zIZCoO-tempdir/mktemp-i1BPCp-137

ERROR 30 AttributeError
. Traceback (most recent call last):
. File "/usr/local/bin/duplicity", line 1500, in <module>
. with_tempdir(main)
. File "/usr/local/bin/duplicity", line 1494, in with_tempdir
. fn()
. File "/usr/local/bin/duplicity", line 1343, in main
. do_backup(action)
. File "/usr/local/bin/duplicity", line 1464, in do_backup
. full_backup(col_stats)
. File "/usr/local/bin/duplicity", line 536, in full_backup
. globals.backend)
. File "/usr/local/bin/duplicity", line 418, in write_multivol
. (tdp, dest_filename, vol_num)))
. File "/usr/local/lib64/python2.7/site-packages/duplicity/asyncscheduler.py", line 145, in schedule_task
. return self.__run_synchronously(fn, params)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/asyncscheduler.py", line 171, in __run_synchronously
. ret = fn(*params)
. File "/usr/local/bin/duplicity", line 417, in <lambda>
. async_waiters.append(io_scheduler.schedule_task(lambda tdp, dest_filename, vol_num: put(tdp, dest_filename, vol_num),
. File "/usr/local/bin/duplicity", line 308, in put
. backend.put(tdp, dest_filename)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backend.py", line 370, in inner_retry
. code = _get_code_from_exception(self.backend, operation, e)
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backend.py", line 343, in _get_code_from_exception
. return backend._error_code(operation, e) or log.ErrorCode.backend_error
. File "/usr/local/lib64/python2.7/site-packages/duplicity/backends/_cf_pyrax.py", line 76, in _error_code
. if e.status == 404:
. AttributeError: 'ClientException' object has no attribute 'status'
.

Related branches

Stephane ANGOT (9-sa) wrote :
Stephane ANGOT (9-sa) on 2015-01-10
Changed in duplicity:
assignee: nobody → Stephane ANGOT (9-sa)
status: New → In Progress
Changed in duplicity:
status: In Progress → Fix Committed
assignee: Stephane ANGOT (9-sa) → nobody
milestone: none → 0.7.01
importance: Undecided → Medium
Changed in duplicity:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments