dns.lookup: default to libc getaddrinfo on Linux #29231
+92
−1
Open
Claude / Claude Code Review
completed
Apr 12, 2026 in 27m 44s
Code review found 1 important issue
Found 4 candidates, confirmed 4. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 1 |
| 🟡 Nit | 0 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🔴 Important | src/dns.zig:298-301 |
EAI_AGAIN mapped to ENOTIMP instead of ETIMEOUT via initEAI on new Linux libc default |
Annotations
Check failure on line 301 in src/dns.zig
claude / Claude Code Review
EAI_AGAIN mapped to ENOTIMP instead of ETIMEOUT via initEAI on new Linux libc default
When `getaddrinfo()` returns `EAI_AGAIN` (temporary DNS failure — DNS server unreachable, empty `/etc/resolv.conf`, network partition), the new Linux `.libc` default backend maps it through `initEAI()` which has no `AGAIN` case, silently returning `Error.ENOTIMP` instead of `Error.ETIMEOUT`. Users in Docker/Kubernetes environments will see `err.code='ENOTIMP'` / `'DNS resolver does not implement requested operation'` for what should be a transient, retryable timeout error. Fix: add `.AGAIN => Er
Loading