summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-11-28 06:53:41 +0100
committerFlorian Bruhin <git@the-compiler.org>2017-11-28 07:05:15 +0100
commitcfe7e7883ad2c5c88f88f31a1b453f51523123a6 (patch)
tree4558e2cb867abe42ae23383e1b0ff2c8f40bc5ec
parentdfe74ff0ee5c661ede79d0b94b432ff9a8557807 (diff)
downloadqutebrowser-cfe7e7883ad2c5c88f88f31a1b453f51523123a6.tar.gz
qutebrowser-cfe7e7883ad2c5c88f88f31a1b453f51523123a6.zip
Handle "out of memory" error in sql.init()
(cherry picked from commit 4fed8518e1d7212b4a63899572ee9de24b785c93)
-rw-r--r--qutebrowser/misc/sql.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/qutebrowser/misc/sql.py b/qutebrowser/misc/sql.py
index f19de698f..bcc5bac82 100644
--- a/qutebrowser/misc/sql.py
+++ b/qutebrowser/misc/sql.py
@@ -72,7 +72,18 @@ class SqliteError(SqlError):
'8', # SQLITE_READONLY
'13', # SQLITE_FULL
]
- self.environmental = error.nativeErrorCode() in environmental_errors
+ # At least in init(), we can get errors like this:
+ # type: ConnectionError
+ # database text: out of memory
+ # driver text: Error opening database
+ # error code: -1
+ environmental_strings = [
+ "out of memory",
+ ]
+ errcode = error.nativeErrorCode()
+ self.environmental = (
+ errcode in environmental_errors or
+ (errcode == -1 and error.databaseText() in environmental_strings))
def text(self):
return self.error.databaseText()