Don't error on ENOTCONN from shutdown()
This commit is contained in:
parent
dcc2dd5e1f
commit
9ccf0e527f
@ -1185,7 +1185,7 @@ Agent.prototype._establishNewConnection = function() {
|
|||||||
parser.incoming = null;
|
parser.incoming = null;
|
||||||
|
|
||||||
socket.on('error', function(err) {
|
socket.on('error', function(err) {
|
||||||
debug('AGENT SOCKET ERROR: ' + err.message);
|
debug('AGENT SOCKET ERROR: ' + err.message + '\n' + err.stack);
|
||||||
var req;
|
var req;
|
||||||
if (socket._httpMessage) {
|
if (socket._httpMessage) {
|
||||||
req = socket._httpMessage;
|
req = socket._httpMessage;
|
||||||
|
@ -844,7 +844,12 @@ Socket.prototype._shutdown = function() {
|
|||||||
try {
|
try {
|
||||||
this._shutdownImpl();
|
this._shutdownImpl();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.destroy(e);
|
if (e.code == 'ENOTCONN') {
|
||||||
|
// Allowed.
|
||||||
|
this.destroy();
|
||||||
|
} else {
|
||||||
|
this.destroy(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// writable but not readable
|
// writable but not readable
|
||||||
|
39
test/disabled/GH-670.js
Normal file
39
test/disabled/GH-670.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
var assert = require('assert');
|
||||||
|
var https = require('https');
|
||||||
|
var tls = require('tls');
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
host: 'github.com',
|
||||||
|
path: '/kriskowal/tigerblood/',
|
||||||
|
port: 443
|
||||||
|
};
|
||||||
|
|
||||||
|
var req = https.get(options, function(response) {
|
||||||
|
var recved = 0;
|
||||||
|
|
||||||
|
response.on('data', function(chunk) {
|
||||||
|
recved += chunk.length;
|
||||||
|
console.log('Response data.');
|
||||||
|
});
|
||||||
|
|
||||||
|
response.on('end', function() {
|
||||||
|
console.log('Response end.');
|
||||||
|
// Does not work
|
||||||
|
loadDom();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
req.on('error', function(e) {
|
||||||
|
console.log('Error on get.');
|
||||||
|
});
|
||||||
|
|
||||||
|
function loadDom() {
|
||||||
|
// Do a lot of computation to stall the process.
|
||||||
|
// In the meantime the socket will be disconnected.
|
||||||
|
for (var i = 0; i < 1e8; i++) {
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('Dom loaded.');
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user