Pyrax backend fail when using Hubic storage

Bug #1408289 reported by Stephane ANGOT
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Duplicity
Fix Released
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'
.

Tags: hubic pyrax

Related branches

Revision history for this message
Stephane ANGOT (9-sa) wrote :
Stephane ANGOT (9-sa)
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  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

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