Skip to content

fix(acp): classify Windows DNS errno 11002/11004 without consuming backoff - #7560

Open
Bartok9 wants to merge 1 commit into
block:mainfrom
Bartok9:bartok/fix-acp-windows-dns-errno-7512
Open

Bartok9 wants to merge 1 commit into
block:mainfrom
Bartok9:bartok/fix-acp-windows-dns-errno-7512

Conversation

@Bartok9

@Bartok9 Bartok9 commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

is_dns_error only matched English resolver strings plus one Windows code (11001 / WSAHOST_NOT_FOUND). Production logs in #7512 show WSANO_DATA (os error 11004) taking the backoff ladder while 11001 correctly used the DNS flat retry.

Change

  • Prefer raw_os_error() on RelayError::WebSocket(Io(_)) so classification is independent of Windows display language.
  • Treat 11001, 11002 (WSATRY_AGAIN), and 11004 as transient DNS. Leave 11003 (WSANO_RECOVERY) off that path.
  • Keep existing Unix/macOS string fallbacks for flattened RelayError::Http.
  • is_windows_dns_errno is a pure i32 matcher so Linux CI can assert the Windows path.

Fixes #7512

Test plan

  • cargo test -p buzz-acp --lib is_dns_error
  • Unit coverage for 11002/11004 classified as DNS and 11003 not classified.

@Bartok9
Bartok9 requested a review from a team as a code owner September 10, 2026 15:45
@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is c507a4d488ca27796e78d876b9c24ee38442cc1b...f90cd15b2f1d0487ac00bd5c2d6fc1117ba4a904.
A new review must complete for this exact range. When manual authorization
is required, a Block organization member must comment exactly
@buzz-security-review f90cd15b2f1d0487ac00bd5c2d6fc1117ba4a904 to authorize a new review.
Any previous review applies only to its recorded range.

@Bartok9
Bartok9 force-pushed the bartok/fix-acp-windows-dns-errno-7512 branch 2 times, most recently from 8fe2a8c to 9845310 Compare September 14, 2026 13:16
…ckoff

is_dns_error only matched English resolver strings and one Windows code
(11001). WSANO_DATA (11004) and WSATRY_AGAIN (11002) therefore burned
autonomous-reconnect ladder rungs on transient getaddrinfo brownouts.

Match raw_os_error() first (language-independent), keep string fallback
for flattened Http errors, and leave WSANO_RECOVERY (11003) off the DNS
path. Fixes block#7512.

Signed-off-by: Bartok9 <259807879+Bartok9@users.noreply.github.com>
@Bartok9
Bartok9 force-pushed the bartok/fix-acp-windows-dns-errno-7512 branch from 9845310 to f90cd15 Compare September 16, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

buzz-acp: the DNS classifier catches 1 of the 3 transient Windows resolver codes, so a name resolution blip consumes the reconnect backoff ladder

1 participant