File tree 3 files changed +15
-6
lines changed
3 files changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ you spot any mistakes.
6
6
7
7
## HEAD
8
8
9
+ * Fix a sync callback when sequence enqueue fails #1147
9
10
* Provide static require analysis
10
11
11
12
## v2.7.0 (2015-05-27)
Original file line number Diff line number Diff line change @@ -183,7 +183,7 @@ Protocol.prototype._enqueue = function(sequence) {
183
183
return sequence ;
184
184
} ;
185
185
186
- Protocol . prototype . _validateEnqueue = function ( sequence ) {
186
+ Protocol . prototype . _validateEnqueue = function _validateEnqueue ( sequence ) {
187
187
var err ;
188
188
var prefix = 'Cannot enqueue ' + sequence . constructor . name ;
189
189
var prefixBefore = prefix + ' before ' ;
@@ -211,11 +211,14 @@ Protocol.prototype._validateEnqueue = function(sequence) {
211
211
var self = this ;
212
212
err . fatal = false ;
213
213
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
+ } ) ;
219
222
220
223
return false ;
221
224
} ;
Original file line number Diff line number Diff line change @@ -7,12 +7,17 @@ var server = common.createFakeServer();
7
7
server . listen ( common . fakeServerPort , function ( err ) {
8
8
assert . ifError ( err ) ;
9
9
10
+ var sync = true ;
11
+
10
12
connection . destroy ( ) ;
11
13
12
14
connection . query ( 'SELECT 1' , function ( err ) {
15
+ assert . ok ( ! sync ) ;
13
16
assert . ok ( err ) ;
14
17
assert . equal ( err . fatal , false ) ;
15
18
assert . equal ( err . code , 'PROTOCOL_ENQUEUE_AFTER_DESTROY' ) ;
16
19
server . destroy ( ) ;
17
20
} ) ;
21
+
22
+ sync = false ;
18
23
} ) ;
You can’t perform that action at this time.
0 commit comments