Просмотр исходного кода

Merge pull request #23447 from overleaf/em-reduce-validation-error-logs

Only log validation errors once per flush

GitOrigin-RevId: ee3f656c4c7c09fd7f3ff2462278c9aef81b9bb5
Eric Mc Sween 1 год назад
Родитель
Сommit
9893f18ca5
1 измененных файлов с 13 добавлено и 4 удалено
  1. 13 4
      services/history-v1/storage/lib/persist_changes.js

+ 13 - 4
services/history-v1/storage/lib/persist_changes.js

@@ -78,6 +78,12 @@ async function persistChanges(projectId, allChanges, limits, clientEndVersion) {
   let originalEndVersion
   let originalEndVersion
   let changesToPersist
   let changesToPersist
 
 
+  /**
+   * It's only useful to log validation errors once per flush. When we enforce
+   * content hash validation, it will stop the flush right away anyway.
+   */
+  let validationErrorLogged = false
+
   limits = limits || {}
   limits = limits || {}
   _.defaults(limits, {
   _.defaults(limits, {
     changeBucketMinutes: 60,
     changeBucketMinutes: 60,
@@ -127,10 +133,13 @@ async function persistChanges(projectId, allChanges, limits, clientEndVersion) {
         } catch (err) {
         } catch (err) {
           // Temporary: skip validation errors
           // Temporary: skip validation errors
           if (err instanceof InvalidChangeError) {
           if (err instanceof InvalidChangeError) {
-            logger.warn(
-              { err, projectId },
-              'content snapshot mismatch (ignored)'
-            )
+            if (!validationErrorLogged) {
+              logger.warn(
+                { err, projectId },
+                'content snapshot mismatch (ignored)'
+              )
+              validationErrorLogged = true
+            }
           } else {
           } else {
             throw err
             throw err
           }
           }