Index: sql/connection.cc |
diff --git a/sql/connection.cc b/sql/connection.cc |
index 9c7cb7d4099a811bc78b314070ab2fd1eebb1eb4..2364acf45ed018861b59e88d5b2bf5aee430a804 100644 |
--- a/sql/connection.cc |
+++ b/sql/connection.cc |
@@ -1733,6 +1733,14 @@ bool Connection::OpenInternal(const std::string& file_name, |
// secure_delete. |
ignore_result(Execute("PRAGMA journal_mode = TRUNCATE")); |
+ bool was_poisoned = poisoned_; |
+ if (was_poisoned) { |
+ Close(); |
+ if (retry_flag == RETRY_ON_POISON) |
+ return OpenInternal(file_name, NO_RETRY); |
+ return false; |
+ } |
+ |
const base::TimeDelta kBusyTimeout = |
base::TimeDelta::FromSeconds(kBusyTimeoutSeconds); |