diff options
author | Morris Jobke <hey@morrisjobke.de> | 2020-11-10 15:15:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-10 15:15:03 +0100 |
commit | f23c2162ad2d2883f08cc88c600a7d2ed4bd8a93 (patch) | |
tree | d8bcdf4ad04525f62f8ad5a43d5b9ba6cc698a08 /lib/private/Files/Config/UserMountCache.php | |
parent | 10aa22dd45c10b7d7729f648dc8e65efb0d937ec (diff) | |
parent | 8027dcbc6f6b1653f5ebcf04b1862ac1e1f51d32 (diff) | |
download | nextcloud-server-f23c2162ad2d2883f08cc88c600a7d2ed4bd8a93.tar.gz nextcloud-server-f23c2162ad2d2883f08cc88c600a7d2ed4bd8a93.zip |
Merge pull request #23993 from nextcloud/bugfix/noid/close-cursors
Don't leave cursors open
Diffstat (limited to 'lib/private/Files/Config/UserMountCache.php')
-rw-r--r-- | lib/private/Files/Config/UserMountCache.php | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index 6fa9cd96bfe..441a4a45326 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -235,7 +235,9 @@ class UserMountCache implements IUserMountCache { ->innerJoin('m', 'filecache', 'f', $builder->expr()->eq('m.root_id', 'f.fileid')) ->where($builder->expr()->eq('user_id', $builder->createPositionalParameter($user->getUID()))); - $rows = $query->execute()->fetchAll(); + $result = $query->execute(); + $rows = $result->fetchAll(); + $result->closeCursor(); $this->mountsForUsers[$user->getUID()] = array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } @@ -258,7 +260,9 @@ class UserMountCache implements IUserMountCache { $query->andWhere($builder->expr()->eq('user_id', $builder->createPositionalParameter($user))); } - $rows = $query->execute()->fetchAll(); + $result = $query->execute(); + $rows = $result->fetchAll(); + $result->closeCursor(); return array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } @@ -274,7 +278,9 @@ class UserMountCache implements IUserMountCache { ->innerJoin('m', 'filecache', 'f', $builder->expr()->eq('m.root_id', 'f.fileid')) ->where($builder->expr()->eq('root_id', $builder->createPositionalParameter($rootFileId, IQueryBuilder::PARAM_INT))); - $rows = $query->execute()->fetchAll(); + $result = $query->execute(); + $rows = $result->fetchAll(); + $result->closeCursor(); return array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } @@ -291,7 +297,10 @@ class UserMountCache implements IUserMountCache { ->from('filecache') ->where($builder->expr()->eq('fileid', $builder->createNamedParameter($fileId, IQueryBuilder::PARAM_INT))); - $row = $query->execute()->fetch(); + $result = $query->execute(); + $row = $result->fetch(); + $result->closeCursor(); + if (is_array($row)) { $this->cacheInfoCache[$fileId] = [ (int)$row['storage'], |