http: don't emit error after destroy · nodejs/node@674b932

Original file line numberDiff line numberDiff line change

@@ -864,6 +864,10 @@ OutgoingMessage.prototype.write = function write(chunk, encoding, callback) {

864864

};

865865
866866

function onError(msg, err, callback) {

867+

if (msg.destroyed) {

868+

return;

869+

}

870+
867871

const triggerAsyncId = msg.socket ? msg.socket[async_id_symbol] : undefined;

868872

defaultTriggerAsyncIdScope(triggerAsyncId,

869873

process.nextTick,

@@ -875,7 +879,7 @@ function onError(msg, err, callback) {

875879
876880

function emitErrorNt(msg, err, callback) {

877881

callback(err);

878-

if (typeof msg.emit === 'function' && !msg._closed) {

882+

if (typeof msg.emit === 'function' && !msg.destroyed) {

879883

msg.emit('error', err);

880884

}

881885

}