You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If an RPC is canceled (by the client or server), the resulting error can sometimes be incorrectly classified, resulting in a *connect.Error with an "unknown" code. The same can happen with timeouts since, under the hood, a timeout will cause the network operation to be canceled.
This mostly happens on connection-related errors, since the net package uses errors other than context.Canceled and context.DeadlineExceeded for cancellations and timeouts (like a canceled or timed-out dial operation or if the server cancels by closing the socket for an HTTP 1.1 connection). The logic needs to be updated to (1) be aware of a larger class of error values returned from the network stack that actually indicate cancelation/timeout conditions and (2) use the operation's context.Context in more places to aid classification (so if we know the context is cancelled or timed out, we can apply the correct code to a larger class of underlying error values).
This bug took several changes to find and fix all occurrences. It was fixed by PRs #643, #659, and #709. The last of these fixes was released in v1.16.0.
If an RPC is canceled (by the client or server), the resulting error can sometimes be incorrectly classified, resulting in a
*connect.Error
with an "unknown" code. The same can happen with timeouts since, under the hood, a timeout will cause the network operation to be canceled.This mostly happens on connection-related errors, since the
net
package uses errors other thancontext.Canceled
andcontext.DeadlineExceeded
for cancellations and timeouts (like a canceled or timed-out dial operation or if the server cancels by closing the socket for an HTTP 1.1 connection). The logic needs to be updated to (1) be aware of a larger class of error values returned from the network stack that actually indicate cancelation/timeout conditions and (2) use the operation'scontext.Context
in more places to aid classification (so if we know the context is cancelled or timed out, we can apply the correct code to a larger class of underlying error values).Some of these cases were also reported in #645.
Found by conformance tests in v1.12.0.
The text was updated successfully, but these errors were encountered: