Skip to content

Commit 2a42a12

Browse files
committed
Fix a sync callback when sequence enqueue fails
fixes #1147
1 parent cdc7fed commit 2a42a12

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

Changes.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ you spot any mistakes.
66

77
## HEAD
88

9+
* Fix a sync callback when sequence enqueue fails #1147
910
* Provide static require analysis
1011

1112
## v2.7.0 (2015-05-27)

lib/protocol/Protocol.js

+9-6
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ Protocol.prototype._enqueue = function(sequence) {
183183
return sequence;
184184
};
185185

186-
Protocol.prototype._validateEnqueue = function(sequence) {
186+
Protocol.prototype._validateEnqueue = function _validateEnqueue(sequence) {
187187
var err;
188188
var prefix = 'Cannot enqueue ' + sequence.constructor.name;
189189
var prefixBefore = prefix + ' before ';
@@ -211,11 +211,14 @@ Protocol.prototype._validateEnqueue = function(sequence) {
211211
var self = this;
212212
err.fatal = false;
213213

214-
sequence
215-
.on('error', function(err) {
216-
self._delegateError(err, sequence);
217-
})
218-
.end(err);
214+
// add error handler
215+
sequence.on('error', function (err) {
216+
self._delegateError(err, sequence);
217+
});
218+
219+
process.nextTick(function () {
220+
sequence.end(err);
221+
});
219222

220223
return false;
221224
};

test/unit/connection/test-query-after-destroy.js

+5
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@ var server = common.createFakeServer();
77
server.listen(common.fakeServerPort, function (err) {
88
assert.ifError(err);
99

10+
var sync = true;
11+
1012
connection.destroy();
1113

1214
connection.query('SELECT 1', function (err) {
15+
assert.ok(!sync);
1316
assert.ok(err);
1417
assert.equal(err.fatal, false);
1518
assert.equal(err.code, 'PROTOCOL_ENQUEUE_AFTER_DESTROY');
1619
server.destroy();
1720
});
21+
22+
sync = false;
1823
});

0 commit comments

Comments
 (0)