Browse Source

Merge pull request #3888 from overleaf/jpa-hotfix-soft-failure-for-missing-deleted-docs

[EditorHttpController] joinProject: ignore err when fetching deletedDocs

GitOrigin-RevId: e2e2e5172de04cebb4a951739ac4222645fdd289
Miguel Serrano 5 years ago
parent
commit
42a1211ba7
1 changed files with 16 additions and 3 deletions
  1. 16 3
      services/web/app/src/Features/Editor/EditorHttpController.js

+ 16 - 3
services/web/app/src/Features/Editor/EditorHttpController.js

@@ -14,6 +14,7 @@ const Errors = require('../Errors/Errors')
 const HttpErrorHandler = require('../Errors/HttpErrorHandler')
 const ProjectEntityUpdateHandler = require('../Project/ProjectEntityUpdateHandler')
 const DocstoreManager = require('../Docstore/DocstoreManager')
+const logger = require('logger-sharelatex')
 const { expressify } = require('../../util/promises')
 
 module.exports = {
@@ -100,9 +101,21 @@ async function _buildJoinProjectView(req, projectId, userId) {
   if (project == null) {
     throw new Errors.NotFoundError('project not found')
   }
-  const deletedDocsFromDocstore = await DocstoreManager.promises.getAllDeletedDocs(
-    projectId
-  )
+  let deletedDocsFromDocstore = []
+  try {
+    deletedDocsFromDocstore = await DocstoreManager.promises.getAllDeletedDocs(
+      projectId
+    )
+  } catch (err) {
+    // The query in docstore is not optimized at this time and fails for
+    // projects with many very large, deleted documents.
+    // Not serving the user with deletedDocs from docstore may cause a minor
+    //  UI issue with deleted files that are no longer available for restore.
+    logger.warn(
+      { err, projectId },
+      'soft-failure when fetching deletedDocs from docstore'
+    )
+  }
   const members = await CollaboratorsGetter.promises.getInvitedMembersWithPrivilegeLevels(
     projectId
   )