From 3f18bfc67aa40797d68745d5ea26a369b6c97ae9 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Tue, 24 Nov 2020 19:41:38 -0500 Subject: Retry in the case of failures. #1010 PyPy seems prone to intermittent SQLite failures. An immediate retry avoids them. Not great, but it works. --- coverage/sqldata.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'coverage/sqldata.py') diff --git a/coverage/sqldata.py b/coverage/sqldata.py index 702bd42b..7a3b5c79 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -1056,7 +1056,13 @@ class SqliteDb(SimpleReprMixin): tail = " with {!r}".format(parameters) if parameters else "" self.debug.write("Executing {!r}{}".format(sql, tail)) try: - return self.con.execute(sql, parameters) + try: + return self.con.execute(sql, parameters) + 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 + return self.con.execute(sql, parameters) except sqlite3.Error as exc: msg = str(exc) try: -- cgit v1.2.1