node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14
Query.Sequence._packetToError
return Boolean(this._callback) || listenerCount(this, 'error') > 1;
};
Sequence.prototype._packetToError = function(packet) {
var code = ErrorConstants[packet.errno] || 'UNKNOWN_CODE_PLEASE_REPORT';
var err = new Error(code + ': ' + packet.message);
err.code = code;
err.errno = packet.errno;
err.sqlMessage = packet.message;
err.sqlState = packet.sqlState;
node_modules/mysql/lib/protocol/sequences/Query.js:77:18
Query.ErrorPacket
this._handleFinalResultPacket(packet);
}
};
Query.prototype['ErrorPacket'] = function(packet) {
var err = this._packetToError(packet);
var results = (this._results.length > 0)
? this._results
: undefined;
node_modules/mysql/lib/protocol/Protocol.js:278:23
Protocol._parsePacket
this._delegateError(err);
return;
}
sequence[packetName](packet);
};
Protocol.prototype._parsePacketDebug = function _parsePacketDebug(packet) {
try {
packet.parse(this._parser);
node_modules/mysql/lib/protocol/Parser.js:76:12
Parser.write
// Try...finally to ensure exception safety. Unfortunately this is costing
// us up to ~10% performance in some benchmarks.
var hadException = true;
try {
this._onPacket(this._packetHeader);
hadException = false;
} catch (err) {
if (!err || typeof err.code !== 'string' || err.code.substr(0, 7) !== 'PARSER_') {
throw err; // Rethrow non-MySQL errors
}
node_modules/mysql/lib/protocol/Protocol.js:38:16
Protocol.write
config : this._config
});
}
Protocol.prototype.write = function(buffer) {
this._parser.write(buffer);
return true;
};
Protocol.prototype.handshake = function handshake(options, callback) {
if (typeof options === 'function') {
node_modules/mysql/lib/Connection.js:91:28
var connection = this;
this._protocol.on('data', function(data) {
connection._socket.write(data);
});
this._socket.on('data', wrapToDomain(connection, function (data) {
connection._protocol.write(data);
}));
this._protocol.on('end', function() {
connection._socket.end();
});
this._socket.on('end', wrapToDomain(connection, function () {
node_modules/mysql/lib/Connection.js:502:10
if (Events.usingDomains && ee.domain) {
ee.domain.enter();
fn.apply(this, arguments);
ee.domain.exit();
} else {
fn.apply(this, arguments);
}
};
}
events.js:189:13
Socket.emit
_stream_readable.js:288:12
addChunk
_stream_readable.js:269:11
readableAddChunk
_stream_readable.js:224:10
Socket.Readable.push
internal/stream_base_commons.js:145:17
TCP.onStreamRead [as onread]
node_modules/mysql/lib/protocol/Protocol.js:144:48
Protocol._enqueue
return sequence;
}
if (this._config.trace) {
// Long stack trace support
sequence._callSite = sequence._callSite || new Error();
}
this._queue.push(sequence);
this.emit('enqueue', sequence);
node_modules/mysql/lib/Connection.js:200:25
Connection.query
query._callback = wrapCallbackInDomain(this, query._callback);
}
this._implyConnect();
return this._protocol._enqueue(query);
};
Connection.prototype.ping = function ping(options, callback) {
if (!callback && typeof options === 'function') {
callback = options;
node_modules/knex/lib/dialects/mysql/index.js:154:18
if (!obj.sql) {
resolver();
return;
}
var queryOptions = (0, _lodash.assign)({ sql: obj.sql }, obj.options);
connection.query(queryOptions, obj.bindings, function (err, rows, fields) {
if (err) return rejecter(err);
obj.response = [rows, fields];
resolver(obj);
});
});
node_modules/knex/lib/dialects/mysql/index.js:148:12
Client_MySQL._query
// Runs the query on the specified connection, providing the bindings
// and any other necessary prep work.
_query: function _query(connection, obj) {
if (!obj || typeof obj === 'string') obj = { sql: obj };
return new _bluebird2.default(function (resolver, rejecter) {
if (!obj.sql) {
resolver();
return;
}
var queryOptions = (0, _lodash.assign)({ sql: obj.sql }, obj.options);
node_modules/knex/lib/client.js:202:17
Client_MySQL.query
debugQuery(obj.sql, __knexTxId);
debugBindings(obj.bindings, __knexTxId);
obj.sql = this.positionBindings(obj.sql);
return this._query(connection, obj).catch(function (err) {
err.message = _this2._formatQuery(obj.sql, obj.bindings) + ' - ' + err.message;
_this2.emit('query-error', err, (0, _lodash.assign)({ __knexUid: __knexUid, __knexTxId: __knexTxId }, obj));
throw err;
});
},
node_modules/knex/lib/runner.js:146:36
this.builder.emit('query', (0, _lodash.assign)({ __knexUid: __knexUid, __knexTxId: __knexTxId }, obj));
var runner = this;
var queryPromise = this.client.query(this.connection, obj);
if (obj.timeout) {
queryPromise = queryPromise.timeout(obj.timeout);
}
node_modules/knex/lib/runner.js:48:21
}
if ((0, _lodash.isArray)(sql)) {
return runner.queryArray(sql);
}
return runner.query(sql);
})
// If there are any "error" listeners, we fire an error event
// and then re-throw the error to be eventually handled by
// the promise chain. Useful if you're wrapping in a custom `Promise`.
/root/.nvm/versions/node/v11.4.0/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29
Immediate.args.(anonymous function)
(function (index) {
args[0] = function () {
delete global.activeSetImmediateAndNextTick[index];
// call the original callback
return userCallback.apply(this, arguments);
};
})(global.activeSetImmediateAndNextTick.counter);
global.activeSetImmediateAndNextTick.counter++;
timers.js:632:19
processImmediate
node_modules/knex/lib/runner.js:34:31
Runner.run
// "Run" the target, calling "toSQL" on the builder, returning
// an object or array of queries to run, each of which are run on
// a single connection.
run: function run() {
var runner = this;
return _bluebird2.default.using(this.ensureConnection(), function (connection) {
runner.connection = connection;
runner.client.emit('start', runner.builder);
runner.builder.emit('start', runner.builder);
var sql = runner.builder.toSQL();
node_modules/knex/lib/interface.js:20:43
Builder.Target.then
// Create a new instance of the `Runner`, passing in the current object.
Target.prototype.then = function () /* onFulfilled, onRejected */{
var _this2 = this;
var result = this.client.runner(this).run();
if (this.client.config.asyncStackTraces) {
result = result.catch(function (err) {
err.originalStack = err.stack;
var firstLine = err.stack.split('\n')[0];