From 9983b14318da40d8fe6e2502c22307f15bb46725 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Tue, 14 Sep 2021 11:15:26 +0200 Subject: [PATCH] Do not cache file ids in FileSystemTags inside group folders Signed-off-by: Richard Steinmetz --- apps/workflowengine/lib/Check/FileSystemTags.php | 11 +++++++++-- psalm.xml | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php index 530509608a17a..d4c97723aac57 100644 --- a/apps/workflowengine/lib/Check/FileSystemTags.php +++ b/apps/workflowengine/lib/Check/FileSystemTags.php @@ -127,8 +127,13 @@ protected function getSystemTags() { * @return int[] */ protected function getFileIds(ICache $cache, $path, $isExternalStorage) { + // TODO: Fix caching inside group folders + // Do not cache file ids inside group folders because multiple file ids might be mapped to + // the same combination of cache id + path. + $shouldCacheFileIds = !$this->storage + ->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class); $cacheId = $cache->getNumericStorageId(); - if (isset($this->fileIds[$cacheId][$path])) { + if ($shouldCacheFileIds && isset($this->fileIds[$cacheId][$path])) { return $this->fileIds[$cacheId][$path]; } @@ -144,7 +149,9 @@ protected function getFileIds(ICache $cache, $path, $isExternalStorage) { $parentIds[] = $cache->getId($path); } - $this->fileIds[$cacheId][$path] = $parentIds; + if ($shouldCacheFileIds) { + $this->fileIds[$cacheId][$path] = $parentIds; + } return $parentIds; } diff --git a/psalm.xml b/psalm.xml index 5ccdb481e1767..d51dbb9dde686 100644 --- a/psalm.xml +++ b/psalm.xml @@ -77,6 +77,11 @@ + + + + +