From 750798d0a311e968b2bf698de0b91016183ed729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Mart=C3=ADn?= Date: Wed, 1 Aug 2018 12:10:09 +0200 Subject: [PATCH] ensuring redis_pool connection release --- lib/cartodb/backends/template_maps.js | 68 ++++++++++++--------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/lib/cartodb/backends/template_maps.js b/lib/cartodb/backends/template_maps.js index 6b39742f..87d2f055 100644 --- a/lib/cartodb/backends/template_maps.js +++ b/lib/cartodb/backends/template_maps.js @@ -75,12 +75,8 @@ TemplateMaps.prototype._redisCmd = function(redisFunc, redisArgs, callback) { } redisClient[redisFunc.toUpperCase()](...redisArgs, (err, data) => { - if (err) { - return callback(err); - } - this.redis_pool.release(this.db_signatures, redisClient); - callback(null, data); + return callback(err, data); }); }); }; @@ -205,39 +201,37 @@ TemplateMaps.prototype.addTemplate = function(owner, template, callback) { var userTemplatesKey = this.key_usr_tpl({ owner:owner }); var limit = this._userTemplateLimit(); - step( - function checkLimit() { - if ( ! limit ) { - return 0; - } - self._redisCmd('HLEN', [ userTemplatesKey ], this); - }, - function installTemplateIfDoesNotExist(err, numberOfTemplates) { - assert.ifError(err); - if ( limit && numberOfTemplates >= limit ) { - var limitReachedError = new Error("User '" + owner + "' reached limit on number of templates (" + - numberOfTemplates + "/" + limit + ")"); - limitReachedError.http_status = 409; - throw limitReachedError; - } - self._redisCmd('HSETNX', [ userTemplatesKey, templateName, JSON.stringify(template) ], this); - }, - function validateInstallation(err, wasSet) { - assert.ifError(err); - if ( ! wasSet ) { - throw new Error("Template '" + templateName + "' of user '" + owner + "' already exists"); - } - - return true; - }, - function finish(err) { - if (!err) { - self.emit('add', owner, templateName, template); - } - - callback(err, templateName, template); + function checkLimit() { + if ( ! limit ) { + return 0; } - ); + self._redisCmd('HLEN', [ userTemplatesKey ], this); + }, + function installTemplateIfDoesNotExist(err, numberOfTemplates) { + assert.ifError(err); + if ( limit && numberOfTemplates >= limit ) { + var limitReachedError = new Error("User '" + owner + "' reached limit on number of templates (" + + numberOfTemplates + "/" + limit + ")"); + limitReachedError.http_status = 409; + throw limitReachedError; + } + self._redisCmd('HSETNX', [ userTemplatesKey, templateName, JSON.stringify(template) ], this); + }, + function validateInstallation(err, wasSet) { + assert.ifError(err); + if ( ! wasSet ) { + throw new Error("Template '" + templateName + "' of user '" + owner + "' already exists"); + } + + return true; + }, + function finish(err) { + if (!err) { + self.emit('add', owner, templateName, template); + } + + callback(err, templateName, template); + } }; // Delete a template