From 4a72d312d8ecb6bacb04ac1ab2349a068aa17957 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Mon, 2 Nov 2015 11:41:06 +0000 Subject: [PATCH 1/2] fix VFS cache race condition causing VFS conneciton to never be cleaned up. --- plugins/c9.vfs.server/cache.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/c9.vfs.server/cache.js b/plugins/c9.vfs.server/cache.js index bc174ae4..47a0d4d5 100644 --- a/plugins/c9.vfs.server/cache.js +++ b/plugins/c9.vfs.server/cache.js @@ -5,7 +5,6 @@ define(function(require, exports, module) { main.provides = ["vfs.cache"]; return main; - function main(options, imports, register) { var Plugin = imports.Plugin; var connectVfs = imports["vfs.connect"].connect; @@ -58,6 +57,7 @@ define(function(require, exports, module) { entry.emit("loaded"); cache[vfsid] = entry; + entry.keepalive(); vfs.on("destroy", function() { remove(vfsid); @@ -126,7 +126,6 @@ define(function(require, exports, module) { }; entry.keepalive = function() { - clearTimeout(timer); startTimer(); }; @@ -139,7 +138,6 @@ define(function(require, exports, module) { }, maxAge); } - startTimer(); return entry; } From 1242e7b6d1ae2d1cce277aa6cc8e886ffd836f22 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Mon, 2 Nov 2015 11:58:11 +0000 Subject: [PATCH 2/2] monitor VFS connect time --- plugins/c9.vfs.server/cache.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/c9.vfs.server/cache.js b/plugins/c9.vfs.server/cache.js index 47a0d4d5..69d21f9c 100644 --- a/plugins/c9.vfs.server/cache.js +++ b/plugins/c9.vfs.server/cache.js @@ -1,13 +1,18 @@ define(function(require, exports, module) { "use strict"; - main.consumes = ["Plugin", "vfs.connect"]; + main.consumes = [ + "Plugin", + "vfs.connect", + "metrics" + ]; main.provides = ["vfs.cache"]; return main; function main(options, imports, register) { var Plugin = imports.Plugin; var connectVfs = imports["vfs.connect"].connect; + var metrics = imports.metrics; var async = require("async"); var uid = require("c9/uid"); @@ -53,6 +58,7 @@ define(function(require, exports, module) { if (err) return done(err); entry.connectTime = Date.now() - entry.startTime; + metrics.timing("vfs.connect.time", entry.connectTime); entry.emit("loaded");