Skip logging errors on expected grpc client disconnect scenarios #11182
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
resolves #10572
Improves handling of gRPC stream disconnections by skipping error logging when the client disconnects in an expected manner during bidirectional streaming.
MoveNext()
, it throws anIOException
wrapping aConnectionAbortedException
.ServerCallContext.CancellationToken
has been canceled.Repro note
The only way I could reproduce this behavior was by introducing an artificial delay in cancellation token signaling.
azure-functions-host/src/WebJobs.Script.Grpc/Server/FunctionRpcService.cs
Line 36 in 2391b98
Specifically, a
Task.Delay(100)
was added before completing theTaskCompletionSource
to simulate a race condition.This causes
MoveNext()
to enter before cancellation is signaled, triggering the exception in a realistic edge case.Pull request checklist
IMPORTANT: Currently, changes must be backported to the
in-proc
branch to be included in Core Tools and non-Flex deployments.in-proc
branch is not requiredrelease_notes.md