mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-04-13 19:44:21 +00:00
Fix endless loop on shutdown when DB can't be reached
The shutdown handler calls `checkAllNotesRevision` on a 100 ms interval. If the database connection is broken, this will return an error. Previously, this error was effectively ignored and resulted in an endless loop printing out the error message every 100 ms. This improves the error handling by terminating the process with a nonzero exit code when an error was encountered 30 times. The loop interval is also increased to 200 ms, giving the database 6 seconds total time to recover in case of intermittent issues. Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
8eb4e7e6e8
commit
b8c3703c2f
2 changed files with 15 additions and 3 deletions
17
app.js
17
app.js
|
@ -331,17 +331,28 @@ function handleTermSignals () {
|
|||
}
|
||||
})
|
||||
}
|
||||
const maxCleanTries = 30
|
||||
let currentCleanTry = 1
|
||||
const checkCleanTimer = setInterval(function () {
|
||||
if (realtime.isReady()) {
|
||||
models.Revision.checkAllNotesRevision(function (err, notes) {
|
||||
if (err) return logger.error(err)
|
||||
if (err) {
|
||||
logger.error('Error while saving note revisions: ' + err)
|
||||
if (currentCleanTry <= maxCleanTries) {
|
||||
logger.warn(`Trying again. Try ${currentCleanTry} of ${maxCleanTries}`)
|
||||
currentCleanTry++
|
||||
return null
|
||||
}
|
||||
logger.error(`Could not save note revisions after ${maxCleanTries} tries! Exiting.`)
|
||||
process.exit(1)
|
||||
}
|
||||
if (!notes || notes.length <= 0) {
|
||||
clearInterval(checkCleanTimer)
|
||||
return process.exit(0)
|
||||
process.exit(0)
|
||||
}
|
||||
})
|
||||
}
|
||||
}, 100)
|
||||
}, 200)
|
||||
}
|
||||
process.on('SIGINT', handleTermSignals)
|
||||
process.on('SIGTERM', handleTermSignals)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
### Bugfixes
|
||||
- Fix crash when trying to read the current Git commit on startup
|
||||
- Fix endless loop on shutdown when HedgeDoc can't connect to the database
|
||||
|
||||
## <i class="fa fa-tag"></i> 1.8.2 <i class="fa fa-calendar-o"></i> 2021-05-11
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue