BadStatusLine when trying to use webdavs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Duplicity |
Fix Released
|
Undecided
|
Unassigned | ||
Debian |
New
|
Undecided
|
Unassigned |
Bug Description
This is a new error message, previously backing up to webdavs worked fine for me.
Many thanks for your work and the excellent program -
Duplicity version: 0.6.06
Python version: 2.6.4
OS Distro and version: Ubuntu 9.10
Type of target filesystem: webdavs:
Traceback (most recent call last):
File "/usr/bin/
with_
File "/usr/bin/
fn()
File "/usr/bin/
incremental
File "/usr/bin/
globals.
File "/usr/bin/
(tdp, dest_filename)))
File "/usr/lib/
return self.__
File "/usr/lib/
ret = fn(*params)
File "/usr/bin/
async_
File "/usr/bin/
backend.
File "/usr/lib/
response = self.request("PUT", url, source_file.read())
File "/usr/lib/
response = self.conn.
File "/usr/lib/
response.
File "/usr/lib/
version, status, reason = self._read_status()
File "/usr/lib/
raise BadStatusLine(line)
BadStatusLine
summary: |
- BadStatusLine when trying to use webdavs (0.6.06) + BadStatusLine when trying to use webdavs |
Changed in duplicity: | |
status: | New → Fix Released |
Ralf,
I have the same traceback with Opensuse 11.2; Python 2.6 and duplicity 6.6 on webdavs: //sd2dav. 1und1.de
What I observed is that everything works fine (without traceback) if the directory on the webdavs: //sd2dav. 1und1.de server
contains only few files.
Starting from approx. 200 files I get the message "sometimes".
Operation stopped in my case for ever having a backup set of 357 files.
I think it is a timeout problem.
I played with the --timeout parameter of duplicity but without success.
I think, the problem is, that in httplib.py method _read_status on class HTTPResponse reads a line from a filepointer which is mapped to the socket connection to the server and this readline command returns nothing.
Maybe it would be necessary to wait a little bit longer for the response of the server.
I am not a python programmer and my simple approach to set self.timeout on class HTTPConnection to 300 and 3000 didn't help.
Maybe one of the developers has a good idea ...
Chris
------- ------- ------- ------- --
Here is what I get with httplib.py debugging on for small amounts of files:
... stuff deleted .... 1und1.de\ r\nAccept- Encod r\nContent- Length: 96\r\nConnection: keep-alive\ r\nDepth: 1\r\nAut ..\r\n\ r "DAV:"> \n<D: >\n</D: propfind> \n\n'
Local and Remote metadata are synchronized, no sync needed.
send: 'PROPFIND /backup/bilbo/ HTTP/1.1\r\nHost: sd2dav.
ing: identity\
horization: Basic ..something.
\n'
send: '<?xml version="1.0" encoding="utf-8" ?>\n<D:propfind xmlns:D=
allprop/
reply: 'HTTP/1.1 207 Multi-Status\r\n'
header: Date: Sun, 28 Feb 2010 20:45:27 GMT
header: Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Catacom
b/static
header: Content-Type: text/xml; charset="utf-8"
header: Vary: Accept-Encoding
header: Content-Length: 15186
header: Keep-Alive: timeout=1, max=99
header: Connection: Keep-Alive
------- ------- ------- ------- ------
for many files I get simply:
... stuff deleted .... 1und1.de\ r\nAccept- Encod r\nContent- Length: 96\r\nConnection: keep-alive\ r\nDepth: 1\r\nAut ..\r\n\ r "DAV:"> \n<D: >\n</D: propfind> \n\n'
Local and Remote metadata are synchronized, no sync needed.
send: 'PROPFIND /backup/bilbo/ HTTP/1.1\r\nHost: sd2dav.
ing: identity\
horization: Basic ..something.
\n'
send: '<?xml version="1.0" encoding="utf-8" ?>\n<D:propfind xmlns:D=
allprop/
reply: ''
+ the traceback from above.