Explorar o código

Merge pull request #13288 from overleaf/bg-investigate-kubernetes-shutdown

log requests received after SIGTERM

GitOrigin-RevId: 108ef0001ab87120faa7d60ea626ad376eea446a
Brian Gough %!s(int64=3) %!d(string=hai) anos
pai
achega
9ddc27d919
Modificáronse 1 ficheiros con 17 adicións e 0 borrados
  1. 17 0
      services/document-updater/app.js

+ 17 - 0
services/document-updater/app.js

@@ -124,6 +124,17 @@ app.param('doc_id', (req, res, next, docId) => {
   }
 })
 
+// Record requests that come in after we've started shutting down - for investigation.
+app.use((req, res, next) => {
+  if (Settings.shuttingDown) {
+    logger.warn(
+      { req, timeSinceShutdown: Date.now() - Settings.shutDownTime },
+      'request received after shutting down'
+    )
+  }
+  next()
+})
+
 app.get('/project/:project_id/doc/:doc_id', HttpController.getDoc)
 app.get('/project/:project_id/doc/:doc_id/peek', HttpController.peekDoc)
 // temporarily keep the GET method for backwards compatibility
@@ -193,7 +204,13 @@ app.use((error, req, res, next) => {
 
 const shutdownCleanly = signal => () => {
   logger.info({ signal }, 'received interrupt, cleaning up')
+  if (Settings.shuttingDown) {
+    logger.warn({ signal }, 'already shutting down, ignoring interrupt')
+    return
+  }
   Settings.shuttingDown = true
+  // record the time we started shutting down
+  Settings.shutDownTime = Date.now()
   setTimeout(() => {
     logger.info({ signal }, 'shutting down')
     process.exit()