Repository navigation
Closed
Labels
confirmed-bugIssues and PRs for confirmed bugs.Issues and PRs for confirmed bugs.dnsIssues and PRs related to the dns subsystem.Issues and PRs related to the dns subsystem.testIssues and PRs related to Node.js core tests and test infrastructure.Issues and PRs related to Node.js core tests and test infrastructure.urlIssues and PRs related to the legacy built-in url module.Issues and PRs related to the legacy built-in url module.whatwg-urlIssues and PRs related to the WHATWG URL implementation.Issues and PRs related to the WHATWG URL implementation.
Description
Both in GitHub actions and locally, for the last three weeks as far as I can tell:
=== release test-dns-ipv6 ===
Path: internet/test-dns-ipv6
test_resolve6
test_reverse_ipv6
node:internal/errors:490
ErrorCaptureStackTrace(err);
^
Error: getHostByAddr EINVAL 2001:4860:4860::8888
at node:internal/dns/promises:280:14
at new Promise (<anonymous>)
at createResolverPromise (node:internal/dns/promises:267:10)
at ResolverBase.getHostByAddr (node:internal/dns/promises:299:12)
at test_reverse_ipv6 (/home/runner/work/node/node/test/internet/test-dns-ipv6.js:72:36)
at next (/home/runner/work/node/node/test/internet/test-dns-ipv6.js:22:7)
at process.processTicksAndRejections (node:internal/process/task_queues:77:11) {
errno: -22,
code: 'EINVAL',
syscall: 'getHostByAddr',
hostname: '2001:4860:4860::8888'
}
Node.js v21.0.0-pre
Command: out/Release/node /home/runner/work/node/node/test/internet/test-dns-ipv6.js
Metadata
Metadata
Assignees
Labels
confirmed-bugIssues and PRs for confirmed bugs.Issues and PRs for confirmed bugs.dnsIssues and PRs related to the dns subsystem.Issues and PRs related to the dns subsystem.testIssues and PRs related to Node.js core tests and test infrastructure.Issues and PRs related to Node.js core tests and test infrastructure.urlIssues and PRs related to the legacy built-in url module.Issues and PRs related to the legacy built-in url module.whatwg-urlIssues and PRs related to the WHATWG URL implementation.Issues and PRs related to the WHATWG URL implementation.
Activity
tniessen commentedon Apr 26, 2023
git bisectblames ead4079 / #47339. cc @anonriganonrig commentedon Apr 26, 2023
I'm looking into it.
anonrig commentedon Apr 26, 2023
It works with Node 18 (Ada v1.0.4)
anonrig commentedon Apr 26, 2023
lib/internal/dns/promises.jsline 277 callstoASCIIwhich is:const err = resolver._handle[bindingName](req, toASCII(hostname));anonrig commentedon Apr 26, 2023
I found the bug:
2001:4860:4860::8888passed todomainToASCIIpreviously returned the same payload, but withada::idna,it returns an empty string (detecting invalid). cc @lemireanonrig commentedon Apr 26, 2023
@tniessen the following diff fixes the issue, although, we need to fix this and release a new version of Ada...
tniessen commentedon Apr 26, 2023
So pretty much reverting ead4079, or at least the
lib/changes of that? I assume it's still going to fail if!hasIntl. Then again, I don't think we care about non-ICU builds.anonrig commentedon Apr 26, 2023
I think the
idna.jsis flawed.icu.toASCIIdoes not equal todomainToASCII. I think our approach is correct, but the previous code was flawed, and our pull request on removing the ICU fromidna.jsexposed the bug.anonrig commentedon Apr 26, 2023
No need to revert, I'll add a new C++ function that directly calls
ada::idna::to_asciiand expose them through internalBinding.