]> source.dussan.org Git - nextcloud-server.git/commitdiff
Wrap metadata generation in try/catch 42198/head
authorLouis Chemineau <louis@chmn.me>
Wed, 13 Dec 2023 09:40:20 +0000 (10:40 +0100)
committerLouis Chemineau <louis@chmn.me>
Wed, 13 Dec 2023 09:51:15 +0000 (10:51 +0100)
Signed-off-by: Louis Chemineau <louis@chmn.me>
core/BackgroundJobs/GenerateMetadataJob.php

index f0dfdb8de2210895c9103744638ea51a3eb31770..393545b097d0acf547c7324a3d44600e36bd190f 100644 (file)
@@ -33,6 +33,7 @@ use OCP\Files\IRootFolder;
 use OCP\FilesMetadata\IFilesMetadataManager;
 use OCP\IConfig;
 use OCP\IUserManager;
+use Psr\Log\LoggerInterface;
 
 class GenerateMetadataJob extends TimedJob {
        public function __construct(
@@ -42,6 +43,7 @@ class GenerateMetadataJob extends TimedJob {
                private IUserManager $userManager,
                private IFilesMetadataManager $filesMetadataManager,
                private IJobList $jobList,
+               private LoggerInterface $logger,
        ) {
                parent::__construct($time);
 
@@ -102,10 +104,14 @@ class GenerateMetadataJob extends TimedJob {
                                continue;
                        }
 
-                       $this->filesMetadataManager->refreshMetadata(
-                               $node,
-                               IFilesMetadataManager::PROCESS_LIVE | IFilesMetadataManager::PROCESS_BACKGROUND
-                       );
+                       try {
+                               $this->filesMetadataManager->refreshMetadata(
+                                       $node,
+                                       IFilesMetadataManager::PROCESS_LIVE | IFilesMetadataManager::PROCESS_BACKGROUND
+                               );
+                       } catch (\Throwable $ex) {
+                               $this->logger->warning("Error while generating metadata for fileid ".$node->getId(), ['exception' => $ex]);
+                       }
                }
        }
 }