diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2020-11-24 19:41:38 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2020-12-05 09:24:08 -0500 |
commit | 3f18bfc67aa40797d68745d5ea26a369b6c97ae9 (patch) | |
tree | a26c15603c2be90615ff2b9cc2577ee4253a03f5 /coverage/sqldata.py | |
parent | 104d51ede4b27ac26429a55340605962e81755d4 (diff) | |
download | python-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/sqldata.py')
-rw-r--r-- | coverage/sqldata.py | 8 |
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: |