SIGN IN SIGN UP

grpc: fix plan9 build by moving errno matching to a !plan9 file (#9255)

Fixes #9253

`disconnectErrorString` (added for gRFC A94 in #8973) references
`syscall.Errno`, `syscall.ECONNRESET` and `syscall.ECONNABORTED`, none
of which exist on plan9, so `GOOS=plan9 go build` fails on every release
since v1.81.0.

This moves the error-to-label classification into `disconnectErrorLabel`
with two implementations: a `!plan9` file with the existing errno
matching, unchanged in behavior, and a plan9 file that keeps the
portable classifications (`subchannel shutdown`, `connection timed out`,
`unknown`). Only plan9 is excluded so the errno granularity on js/wasm
and wasip1, where `syscall.Errno` exists, stays as it is today.

Verified `GOOS=plan9 GOARCH=amd64 go build ./...` fails on master and
passes with this change, and `go build` plus the root package tests
still pass on linux and darwin.

RELEASE NOTES:

* grpc: fix compilation on plan9, broken since v1.81.0.
Y
Yusuf İhsan Görgel committed
b6eac429d7b60eb080346a21ecc631c60df603fe
Parent: 25387aa
Committed by GitHub <noreply@github.com> on 7/23/2026, 9:34:37 AM