From 25b9e6f3307c7545c9a7d4f3f40047d61a584d5c Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Thu, 22 Mar 2018 12:44:45 -0500 Subject: [PATCH] Added memwatch for memory leak detection (#10166) --- package-lock.json | 12 ++++++++++-- package.json | 1 + website/server/server.js | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5443ece6ed..c47e336be6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2020,8 +2020,7 @@ "bindings": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", - "optional": true + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" }, "bitsyntax": { "version": "0.0.4", @@ -13335,6 +13334,15 @@ "readable-stream": "2.3.4" } }, + "memwatch-next": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memwatch-next/-/memwatch-next-0.3.0.tgz", + "integrity": "sha1-IREFD5qQbgqi1ypOwPAInHhyb48=", + "requires": { + "bindings": "1.3.0", + "nan": "2.6.2" + } + }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", diff --git a/package.json b/package.json index 666b8b72bf..610f942f15 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "jquery": ">=3.0.0", "js2xmlparser": "^3.0.0", "lodash": "^4.17.4", + "memwatch-next": "^0.3.0", "merge-stream": "^1.0.0", "method-override": "^2.3.5", "moment": "^2.21.0", diff --git a/website/server/server.js b/website/server/server.js index 473cc4a284..41c0089fc0 100644 --- a/website/server/server.js +++ b/website/server/server.js @@ -4,6 +4,14 @@ import express from 'express'; import http from 'http'; import Bluebird from 'bluebird'; +// @TODO: May need to remove - testing +import memwatch from 'memwatch-next'; + +memwatch.on('leak', (info) => { + const message = `Memory leak detected:\n${info}`; + logger.error(message); +}); + global.Promise = Bluebird; const server = http.createServer();