summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2020-11-24 19:41:38 -0500
committerNed Batchelder <ned@nedbatchelder.com>2020-12-05 09:24:08 -0500
commit3f18bfc67aa40797d68745d5ea26a369b6c97ae9 (patch)
treea26c15603c2be90615ff2b9cc2577ee4253a03f5 /coverage
parent104d51ede4b27ac26429a55340605962e81755d4 (diff)
downloadpython-coveragepy-git-3f18bfc67aa40797d68745d5ea26a369b6c97ae9.tar.gz
Retry in the case of failures. #1010
PyPy seems prone to intermittent SQLite failures. An immediate retry avoids them. Not great, but it works.
Diffstat (limited to 'coverage')
-rw-r--r--coverage/sqldata.py8
1 files changed, 7 insertions, 1 deletions
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: