Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node 20 ERR_INTERNAL_ASSERTION when connected to VPN #50655

Closed
neil-hardlight opened this issue Nov 10, 2023 · 8 comments
Closed

Node 20 ERR_INTERNAL_ASSERTION when connected to VPN #50655

neil-hardlight opened this issue Nov 10, 2023 · 8 comments
Labels
duplicate Issues and PRs that are duplicates of other issues or PRs.

Comments

@neil-hardlight
Copy link

Version

20.9.0

Platform

Microsoft Windows NT 10.0.19045.0 x64

Subsystem

No response

What steps will reproduce the bug?

Appears to be related to sending a POST REST request. Happens using "got" (v13.0.0) or "axios" (v1.6.0). Running unit tests via mocha. Sadly I don't have time to produce a minimal repo case, but I'm following the request here and reporting the callstack:

Error [ERR_INTERNAL_ASSERTION]: This is caused by either a bug in Node.js or incorrect usage of Node.js internals.
Please open an issue with this stack trace at https://github.com/nodejs/node/issues

at new NodeError (node:internal/errors:406:5)
at assert (node:internal/assert:14:11)
at internalConnectMultiple (node:net:1118:3)
at afterConnectMultiple (node:net:1667:5)

How often does it reproduce? Is there a required condition?

More likely to happen when connected to VPN. There does appear to be a timing aspect to it - if I breakpoint the code it's less likely to fail. Without breakpoints the failure rate is ~70%.

What is the expected behavior? Why is that the expected behavior?

N/A

What do you see instead?

Just reporting the callstack as requested

Additional information

No response

@bnoordhuis
Copy link
Member

Duplicate of several open issues (search for "internalConnectMultiple") so I'll go ahead and close this but cc @ShogunPanda just in case.

@bnoordhuis bnoordhuis closed this as not planned Won't fix, can't repro, duplicate, stale Nov 11, 2023
@bnoordhuis bnoordhuis added the duplicate Issues and PRs that are duplicates of other issues or PRs. label Nov 11, 2023
@ShogunPanda
Copy link
Contributor

@neil-hardlight thanks for your report. I'll try to address this next week.
In order to speed up things, can you please provide me the following info?

  1. Which hosts (even local/LAN, it doesn't matter) the system is trying to connect toV
  2. How the connecting system resolves the target hosts in the DNS (in other words, the result of dig $TARGET run within the source host.
  3. If the connections are using TLS.

Thanks!

@neil-hardlight
Copy link
Author

  1. Connecting to localhost:9998
  2. No DNS resolve as localhost
  3. No TLS - standard HTTP request

I think I have narrowed this down to the REST request retry. My unit test has a 1ms retry.

For example, when using "got":

result = await got['post']('http://localhost:9998/receiver', {timeout: {request: 1}, responseType: 'json'});

I hope this helps?

@ShogunPanda
Copy link
Contributor

Yup, thanks. I will keep you posted!

@ShogunPanda
Copy link
Contributor

This should have been fixed in #51045. Once it gets in 21.x or 20.x please let me know if you have additional problems.

@seanzi86
Copy link

seanzi86 commented Feb 2, 2024

Do we know what kind of timescales we are looking at for this to be merged into 20.x and then released? Thanks 🙂

@ShogunPanda
Copy link
Contributor

If I'm not mistaken, this is on watch list for a LTS backport. I believe it should be out in the next month.

@nodejs/releasers Can you please clarify?

@richardlau
Copy link
Member

If I'm not mistaken, this is on watch list for a LTS backport. I believe it should be out in the next month.

@nodejs/releasers Can you please clarify?

That is the current plan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate Issues and PRs that are duplicates of other issues or PRs.
Projects
None yet
Development

No branches or pull requests

5 participants