| 1234567891011121314151617181920212223242526 |
- Settings = require "settings-sharelatex"
- PersistenceManager = require "./PersistenceManager"
- module.exports = MongoHealthCheck =
- isAlive: (_callback = (error) ->) ->
- # We've seen very occasionally the doc-updater losing its connection to Mongo.
- # E.g. https://sharelatex.hackpad.com/29th-Aug-2015-0650-0740-fHlw8RL8zuN
- # It seems that the mongo callbacks never returned.
- # Mongo is only called in the persistence manager, so we do a read-only
- # test call, check that it's working, and returns in a reasonable time.
- callback = (args...) ->
- _callback(args...)
- _callback = () ->
- doc_id = Settings.smokeTest?.doc_id
- if !doc_id?
- return callback(new Error("No test doc_id configured"))
- PersistenceManager.getDocVersionInMongo doc_id, (error, version) ->
- return callback(error) if error?
- callback(null)
- timeout = Settings.smokeTest?.timeout or 10000
- setTimeout () ->
- callback(new Error("Mongo did not return in #{timeout}ms"))
- , timeout
|