镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Cannot read property 'emit' of null in _http_client.js #20690

Description

@xloem
  • Version: v6.14.2
  • 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.

Activity

  1. xloem commented on May 13, 2018

    @xloem
    Author

    note: problem disappeared when I upgraded to node v8.11.1

  2. tniessen commented on May 13, 2018

    @tniessen
    Member

    cc @nodejs/http

  3. added
    httpIssues and PRs related to the http subsystem.
    on May 13, 2018
  4. MylesBorins commented on May 15, 2018

    @MylesBorins
    Contributor

    @xloem have you tried it on earlier versions of 6.x? Is this a new regression?

  5. xloem commented on May 15, 2018

    @xloem
    Author

    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.

  6. jordanrogers commented on May 16, 2018

    @jordanrogers

    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

  7. tniessen commented on May 16, 2018

    @tniessen
    Member

    Pinging @lpinca.

  8. lpinca commented on May 16, 2018

    @lpinca
    Member

    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?

  9. jordanrogers commented on May 16, 2018

    @jordanrogers

    @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'); });

  10. lpinca commented on May 16, 2018

    @lpinca
    Member

    @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.

  11. lpinca commented on May 16, 2018

    @lpinca
    Member

    It's funny that this did go unnoticed for 3 months but I guess that is not a common use case.

  12. 2 remaining items

  13. bedney commented on Jul 6, 2018

    @bedney

    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.

  14. lpinca commented on Jul 6, 2018

    @lpinca
    Member

    @bedney it should be backported, not sure why it didn't happen yet. I'll add the required labels to the PR to backport.

  15. bugg2844 commented on Oct 3, 2018

    @bugg2844

    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?

  16. MylesBorins commented on Oct 3, 2018

    @MylesBorins
    Contributor

    There will not be another 8.11 release.

    Is this fixed in 8.12?

  17. bedney commented on Oct 3, 2018

    @bedney

    I can confirm that this is fixed in 8.12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues and PRs for confirmed bugs.httpIssues and PRs related to the http subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions