From 993a6d0eb966a8bef2e3dc93098946d246d43993 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Wed, 1 Dec 2021 11:28:58 -0500 Subject: [PATCH] Merge pull request #5968 from overleaf/em-oversized-docs Get path from Mongo when fixing oversized docs GitOrigin-RevId: 07d5425d37faf935c162f57f63f6f1cf4c62d592 --- services/web/scripts/fix_oversized_docs.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/services/web/scripts/fix_oversized_docs.js b/services/web/scripts/fix_oversized_docs.js index 3c17043163..3bdc073e12 100644 --- a/services/web/scripts/fix_oversized_docs.js +++ b/services/web/scripts/fix_oversized_docs.js @@ -5,6 +5,7 @@ const DocstoreManager = require('../app/src/Features/Docstore/DocstoreManager') const FileStoreHandler = require('../app/src/Features/FileStore/FileStoreHandler') const FileWriter = require('../app/src/infrastructure/FileWriter') const ProjectEntityMongoUpdateHandler = require('../app/src/Features/Project/ProjectEntityMongoUpdateHandler') +const ProjectLocator = require('../app/src/Features/Project/ProjectLocator') const RedisWrapper = require('@overleaf/redis-wrapper') const Settings = require('@overleaf/settings') @@ -55,7 +56,7 @@ async function processProject(projectId) { } async function processDoc(projectId, docId) { - const doc = await getDocFromRedis(docId) + const doc = await getDoc(projectId, docId) const size = doc.lines.reduce((sum, line) => sum + line.length + 1, 0) if (size > opts.maxDocSize) { if ( @@ -89,15 +90,19 @@ async function getDocIds(projectId) { return docIds } -async function getDocFromRedis(docId) { +async function getDoc(projectId, docId) { const lines = await redis.get(`doclines:{${docId}}`) - const path = await redis.get(`Pathname:{${docId}}`) const ranges = await redis.get(`Ranges:{${docId}}`) + const { path } = await ProjectLocator.promises.findElement({ + project_id: projectId, + element_id: docId, + type: 'doc', + }) return { id: docId, lines: JSON.parse(lines), ranges: ranges ? JSON.parse(ranges) : {}, - path, + path: path.fileSystem, } }