nodejs / nodejs/node

DNS Lookups Failing After Updating to Latest Node 20 and 18 for IBM i

Open
#53,948 25 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dns ibm i
Dominant language
JavaScript
Stars
122k
Forks
37.3k
Avg merge
4d 2h
Merged PRs (30d)
283

Description

Version

v20.15.1

Platform
IBM i 7.3:

OS400 idev 3 7 00780002A1F1 powerpc Os
Subsystem

DNS

What steps will reproduce the bug?

Any DNS lookup fails with connection timeout. Can run this code to reproduce:

require("dns").resolve("smtp.office365.com", function() { console.log(arguments); })

Fails with ETIMEOUT, even though the system DNS configuration is good and other software can perform DNS lookups.

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

Every time. This started happening when updating to Node 20.15.1 and Node 18.20.4 for IBM i. Everything was working fine before the update. Before, I was using Node 20.11.1 and Node 18.18.2.

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

I expect a good DNS lookup, as the system DNS configuration is good and most other software can perform lookups.

What do you see instead?

ETIMEOUT on any DNS lookup.

Additional information

An interesting thing we noticed that may relate....

On the affected systems, the NSLOOKUP CL command can perform lookups with no problem, but the nslookup command in PASE fails with ETIMEOUT for any lookup.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with require("dns").resolve("smtp.office365.com", ... ) on IBM i 7.3 using Node 20.15.1 or 18.20.4. Compare the failing PASE nslookup behavior with the working NSLOOKUP CL command and the previously working Node versions. Done means DNS lookups no longer time out on the affected versions and the regression is covered by an appropriate test.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.