From 57567700db5c56d793a09942c21f42714da7efab Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 4 Apr 2021 09:26:28 -0400 Subject: fix: retry immediately on a failure inside executemany. #1138 --- coverage/sqldata.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/coverage/sqldata.py b/coverage/sqldata.py index a150fdfd..f58486ac 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -1103,7 +1103,14 @@ class SqliteDb(SimpleReprMixin): if self.debug: data = list(data) self.debug.write("Executing many {!r} with {} rows".format(sql, len(data))) - return self.con.executemany(sql, data) + try: + return self.con.executemany(sql, data) + except Exception: + # In some cases, an error might happen that isn't really an + # error. Try again immediately. + # https://github.com/nedbat/coveragepy/issues/1010 + # https://github.com/nedbat/coveragepy/issues/1138 + return self.con.executemany(sql, data) def executescript(self, script): """Same as :meth:`python:sqlite3.Connection.executescript`.""" -- cgit v1.2.1