You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Cannot read property 'emit' of null in _http_client.js #20690
Platform: Linux clearnet 4.9.56-21.pvops.qubes.x86_64 deps: update openssl to 1.0.1j #1 SMP Tue Oct 17 23:58:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Subsystem: http
I'm getting the following error on every run of registry-static:
_http_client.js:277
req.emit('close');
^
TypeError: Cannot read property 'emit' of null
at TLSSocket.socketCloseListener (_http_client.js:277:6)
at emitOne (events.js:101:20)
at TLSSocket.emit (events.js:188:7)
at _handle.close (net.js:509:12)
at TCP.done [as _onclose] (_tls_wrap.js:332:7)
It's happening reliably for me at 317673 while processing ng2-comps. I haven't tried with an empty output folder yet because it takes me a few days to get that far into the database.
I'm afraid that now I have found a way to make it work I'm not available to test this a lot as it takes so long to trigger it. I'm sorry. An obvious approach would be to git bisect between the two versions, but this would take many weeks to complete.
I am also seeing this error after upgrading from v8.11.1 to v8.11.2. Scanning the changelog for v8.11.2, the error seems to be plausibly related to #18865, which seems to have landed in both 6.14.2 and 8.11.2
Weird, there are only two (1, 2) places where 'agentRemove' is emitted and in both cases (1, 2) the socketCloseListener is removed, so I'm not sure how this can happen.
Is there a way to reproduce the issue without relying on userland modules?
this code reproduces the TypeError for me on v8.11.2: require('http').get('http://0.0.0.0', (res)=>{}).once('socket', (socket)=>{ socket.emit('agentRemove'); });
@jordanrogers thanks! Didn't think about that use case. I will open a PR to null the property without relying on the 'agentRemove' event and add a regression test.
Hi, it appears that this issue still exists in 8.11.4, so we are still stuck at 8.11.1. Is there a plan to fix in 8.11, or is 8.12 the nearest fix version?
Activity
xloem commentedon May 13, 2018
note: problem disappeared when I upgraded to node v8.11.1
tniessen commentedon May 13, 2018
cc @nodejs/http
MylesBorins commentedon May 15, 2018
@xloem have you tried it on earlier versions of 6.x? Is this a new regression?
xloem commentedon May 15, 2018
I'm afraid that now I have found a way to make it work I'm not available to test this a lot as it takes so long to trigger it. I'm sorry. An obvious approach would be to git bisect between the two versions, but this would take many weeks to complete.
jordanrogers commentedon May 16, 2018
I am also seeing this error after upgrading from v8.11.1 to v8.11.2. Scanning the changelog for v8.11.2, the error seems to be plausibly related to #18865, which seems to have landed in both 6.14.2 and 8.11.2
tniessen commentedon May 16, 2018
Pinging @lpinca.
lpinca commentedon May 16, 2018
Weird, there are only two (1, 2) places where
'agentRemove'is emitted and in both cases (1, 2) thesocketCloseListeneris removed, so I'm not sure how this can happen.Is there a way to reproduce the issue without relying on userland modules?
jordanrogers commentedon May 16, 2018
@lpinca the API docs include an example of how to emit the 'agentRemove' event from userland code to remove an socket from an agent.
https://nodejs.org/dist/latest-v8.x/docs/api/http.html#http_class_http_agent
this code reproduces the TypeError for me on v8.11.2:
require('http').get('http://0.0.0.0', (res)=>{}).once('socket', (socket)=>{ socket.emit('agentRemove'); });lpinca commentedon May 16, 2018
@jordanrogers thanks! Didn't think about that use case. I will open a PR to null the property without relying on the
'agentRemove'event and add a regression test.lpinca commentedon May 16, 2018
It's funny that this did go unnoticed for 3 months but I guess that is not a common use case.
http: do not rely on the 'agentRemove' event
http: do not rely on the 'agentRemove' event
2 remaining items
bedney commentedon Jul 6, 2018
I apologize in advance if there is a procedure that I'm not following here, but I couldn't find any for formally requesting backporting of fixes.
Is there a plan to backport this fix into the 6.X and 8.X branches? This bug is biting us on servers running both of those versions.
Thanks in advance.
lpinca commentedon Jul 6, 2018
@bedney it should be backported, not sure why it didn't happen yet. I'll add the required labels to the PR to backport.
http: do not rely on the 'agentRemove' event
http: do not rely on the 'agentRemove' event
bugg2844 commentedon Oct 3, 2018
Hi, it appears that this issue still exists in 8.11.4, so we are still stuck at 8.11.1. Is there a plan to fix in 8.11, or is 8.12 the nearest fix version?
MylesBorins commentedon Oct 3, 2018
There will not be another 8.11 release.
Is this fixed in 8.12?
bedney commentedon Oct 3, 2018
I can confirm that this is fixed in 8.12
http: do not rely on the 'agentRemove' event
http: do not rely on the 'agentRemove' event