From 4d10d2b57d95ff3f548fd213765d01234807612c Mon Sep 17 00:00:00 2001
From: Axel Rutz <axel.rutz@clever-systems.net>
Date: Fri, 31 Aug 2012 00:52:44 +0200
Subject: [PATCH] Issue #1120020: Fixed SQLite database locking errors cause
 fatal errors.

---
 .../Core/Database/Driver/sqlite/Connection.php     |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
index 02a55a4..5ec525f 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
@@ -335,6 +335,13 @@ class Connection extends DatabaseConnection {
     }
   }
 
+  /**
+   * Always use immediate locking to prevent 'sqlite busy' exceptions.
+   */
+  public function beginTransaction() {
+    return $this->exec('BEGIN IMMEDIATE') !== FALSE;
+  }
+
   public function pushTransaction($name) {
     if ($this->savepointSupport) {
       return parent::pushTransaction($name);
-- 
1.7.5.4

