From a5f0f0a90b29493875e56015ecd72dc57f92d60b Mon Sep 17 00:00:00 2001 From: William Felipe Welter Date: Mon, 15 Jun 2020 14:46:49 -0300 Subject: [PATCH] Fix race condition between different databases Trying to sync query execution to avoid race conditions. --- index.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index eab06fb..c36155d 100644 --- a/index.js +++ b/index.js @@ -101,6 +101,13 @@ async function queryStoreCollect(connection) { } } +async function syncExecSQL(dbrequest) { + return new Promise((resolve) => { + connection.execSql(dbrequest); + + }); +} + async function collectQueryStoreDB(connection) { return new Promise((resolve) => { let request = new Request("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')", async function (error, rowCount, rows) { @@ -112,10 +119,13 @@ async function collectQueryStoreDB(connection) { if (!DBerror && DBrowCount > 0 && DBrows[0][0].value != "OFF") { await queryStoreCollect(dbconnect); } + delete config.connect.options.database; dbconnect.close(); + resolve(); }); - dbconnect.execSql(dbrequest); + + await syncExecSQL(dbrequest); } resolve(); } else {