From: Vincent Petry Date: Fri, 28 Nov 2014 08:35:31 +0000 (+0100) Subject: Close cursor early in calculateFolderSize X-Git-Tag: v8.0.0RC1~10^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=35ab770b1143b5ca4505d2aae889f5390e13cbb2;p=nextcloud-server.git Close cursor early in calculateFolderSize This method triggers additional queries in $this->update() so to avoid potential database locks or delays, we close the cursor as soon as it is not needed any more --- diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index 8831320bcee..5438bdad5cb 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -596,6 +596,7 @@ class Cache { 'WHERE `parent` = ? AND `storage` = ?'; $result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId())); if ($row = $result->fetchRow()) { + $result->closeCursor(); list($sum, $min, $unencryptedSum) = array_values($row); $sum = 0 + $sum; $min = 0 + $min; @@ -618,6 +619,8 @@ class Cache { if ($totalSize !== -1 and $unencryptedSum > 0) { $totalSize = $unencryptedSum; } + } else { + $result->closeCursor(); } } return $totalSize; diff --git a/lib/private/files/cache/homecache.php b/lib/private/files/cache/homecache.php index 2b3967c8807..ad7f587b8b6 100644 --- a/lib/private/files/cache/homecache.php +++ b/lib/private/files/cache/homecache.php @@ -35,6 +35,7 @@ class HomeCache extends Cache { 'WHERE `parent` = ? AND `storage` = ? AND `size` >= 0'; $result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId())); if ($row = $result->fetchRow()) { + $result->closeCursor(); list($sum, $unencryptedSum) = array_values($row); $totalSize = 0 + $sum; $unencryptedSize = 0 + $unencryptedSum;