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

Merge pull request #32395 from overleaf/ar-more-information-on-long-requests

[fetch-utils] more information on long requests

GitOrigin-RevId: 716620fa95fcfbe563ad0a3728cebd09509b03f5
Andrew Rumble 4 месяцев назад
Родитель
Сommit
16a616f112
1 измененных файлов с 14 добавлено и 5 удалено
  1. 14 5
      libraries/fetch-utils/index.js

+ 14 - 5
libraries/fetch-utils/index.js

@@ -188,16 +188,25 @@ function parseOpts(opts, url) {
   if (opts.signal) {
     detachSignal = abortOnSignal(abortController, opts.signal)
   } else {
+    let overTimeoutStart
+    const stack = new Error().stack
     const timeout = setTimeout(() => {
-      if (logger) {
+      overTimeoutStart = process.hrtime.bigint()
+    }, 120000)
+    detachSignal = () => {
+      clearTimeout(timeout)
+      if (overTimeoutStart && logger) {
         logger.warn(
-          { url, method: opts.method ?? 'GET' },
+          {
+            url,
+            method: opts.method ?? 'GET',
+            overTimeoutMs:
+              Number(process.hrtime.bigint() - overTimeoutStart) / 1e6,
+            stack,
+          },
           'Fetch request did not complete within 120 seconds'
         )
       }
-    }, 120000)
-    detachSignal = () => {
-      clearTimeout(timeout)
     }
   }
   if (opts.body instanceof Readable) {