diff --git a/lib/shutdown.js b/lib/shutdown.js index 308349ca6f652b045db2f293a6d669d74f69cabb..7cc3a2c3704ca892d88b9940d30e9626949a0e72 100644 --- a/lib/shutdown.js +++ b/lib/shutdown.js @@ -111,9 +111,15 @@ exports.handleTerminationSignals = function(app, callback) { process.on('SIGINT', endIt('INT')).on('SIGTERM', endIt('TERM')).on('SIGQUIT', endIt('QUIT')); }; +const CODE_UPDATE_URL = '/code_update'; + exports.installUpdateHandler = function(app, callback) { var terminate = connectionListener(app); - app.get('/code_update', function(req, resp, next) { + app.get(CODE_UPDATE_URL, function(req, resp, next) { + // don't allow an imprecise match (like one with a trailing slash) to shut the server down. + // bug #699171 + if (req.url !== CODE_UPDATE_URL) return next(); + logger.warn("code updated. closing " + app.connections + " connections and shutting down."); terminate(callback); });