database: do not crash if connection errors

Part of #690
This commit is contained in:
Girish Ramakrishnan
2020-06-03 16:10:25 -07:00
parent c5cc404b3e
commit 6cfd64e536

View File

@@ -169,15 +169,19 @@ function transaction(queries, callback) {
assert(util.isArray(queries));
assert.strictEqual(typeof callback, 'function');
beginTransaction(function (error, conn) {
callback = once(callback);
beginTransaction(function (error, connection) {
if (error) return callback(error);
async.mapSeries(queries, function iterator(query, done) {
conn.query(query.query, query.args, done);
}, function seriesDone(error, results) {
if (error) return rollback(conn, callback.bind(null, error));
connection.on('error', callback);
commit(conn, callback.bind(null, null, results));
async.mapSeries(queries, function iterator(query, done) {
connection.query(query.query, query.args, done);
}, function seriesDone(error, results) {
if (error) return rollback(connection, callback.bind(null, error));
commit(connection, callback.bind(null, null, results));
});
});
}