From: Brian Warner Date: Fri, 6 Feb 2009 08:34:01 +0000 (-0700) Subject: backupdb.py: catch OperationalError on duplicate-insert too, since pysqlite2 on dappe... X-Git-Tag: allmydata-tahoe-1.3.0~70 X-Git-Url: https://git.rkrishnan.org/%5B/frontends//%22file:/%22?a=commitdiff_plain;h=5bc0ef7ffee28cf573918a12d28f3df8f8d9c1bf;p=tahoe-lafs%2Ftahoe-lafs.git backupdb.py: catch OperationalError on duplicate-insert too, since pysqlite2 on dapper raises it instead of IntegrityError --- diff --git a/src/allmydata/scripts/backupdb.py b/src/allmydata/scripts/backupdb.py index 02cf7eb6..51fbda7d 100644 --- a/src/allmydata/scripts/backupdb.py +++ b/src/allmydata/scripts/backupdb.py @@ -208,7 +208,9 @@ class BackupDB_v1: c = self.cursor try: c.execute("INSERT INTO caps (filecap) VALUES (?)", (filecap,)) - except self.sqlite_module.IntegrityError: + except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError): + # sqlite3 on sid gives IntegrityError + # pysqlite2 on dapper gives OperationalError pass c.execute("SELECT fileid FROM caps WHERE filecap=?", (filecap,)) foundrow = c.fetchone() @@ -222,7 +224,7 @@ class BackupDB_v1: try: self.cursor.execute("INSERT INTO last_upload VALUES (?,?,?)", (fileid, now, now)) - except self.sqlite_module.IntegrityError: + except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError): self.cursor.execute("UPDATE last_upload" " SET last_uploaded=?, last_checked=?" " WHERE fileid=?", @@ -230,7 +232,7 @@ class BackupDB_v1: try: self.cursor.execute("INSERT INTO local_files VALUES (?,?,?,?,?)", (path, size, mtime, ctime, fileid)) - except self.sqlite_module.IntegrityError: + except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError): self.cursor.execute("UPDATE local_files" " SET size=?, mtime=?, ctime=?, fileid=?" " WHERE path=?",