duplicity-talk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Duplicity-talk] 0.4.3.RC4 Ready for Test


From: Kenneth Loafman
Subject: Re: [Duplicity-talk] 0.4.3.RC4 Ready for Test
Date: Sun, 03 Jun 2007 13:49:29 -0500
User-agent: Thunderbird 1.5.0.10 (X11/20070306)

Dennis Schulz wrote:
I've finished my test last night. Backup-process works for now but the verify-method gives an similiar behavior like the backup-process before your patches. Everytime it loads the "df.jj0hiz.1.dt.g" regardless that its already finished (Transfer OK).

Till now I didn't try to restore the backup. I think firstly the verify should work ;)
Hope this helps you.

If you don't mind applying a patch (as root):
  # cd /usr/lib/python2.x/duplicity
  # patch < duplicity-conn-close-timeout.patch
then running the test again, with -v8 instead of -v4, I would appreciate it. I can't reproduce the problem here.

I'm almost certain this should correct the problem in ftplib.py where connection closes after read/write can cause exceptions, but we really don't care if they do.

...Ken

Index: ftplib.py
===================================================================
RCS file: /sources/duplicity/duplicity/duplicity/ftplib.py,v
retrieving revision 1.1
diff -u -r1.1 ftplib.py
--- ftplib.py   23 May 2007 20:24:11 -0000      1.1
+++ ftplib.py   3 Jun 2007 18:41:11 -0000
@@ -388,7 +388,10 @@
             if not data:
                 break
             callback(data)
-        conn.close()
+        try:
+            conn.close()
+        except socket.error:
+            pass
         return self.voidresp()
 
     def retrlines(self, cmd, callback = None):
@@ -412,7 +415,10 @@
                 line = line[:-1]
             callback(line)
         fp.close()
-        conn.close()
+        try:
+            conn.close()
+        except socket.error:
+            pass
         return self.voidresp()
 
     def storbinary(self, cmd, fp, blocksize=8192):
@@ -423,7 +429,10 @@
             buf = fp.read(blocksize)
             if not buf: break
             conn.sendall(buf)
-        conn.close()
+        try:
+            conn.close()
+        except socket.error:
+            pass
         return self.voidresp()
 
     def storlines(self, cmd, fp):
@@ -437,7 +446,10 @@
                 if buf[-1] in CRLF: buf = buf[:-1]
                 buf = buf + CRLF
             conn.sendall(buf)
-        conn.close()
+        try:
+            conn.close()
+        except socket.error:
+            pass
         return self.voidresp()
 
     def acct(self, password):

reply via email to

[Prev in Thread] Current Thread [Next in Thread]