Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions release_notes.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
### Release notes

<!-- Please add your release notes in the following format:
- My change description (#PR)
-->
- Adding activity sources for Durable and WebJobs (Kafka and RabbitMQ) (#11137)
- Add JitTrace Files for v4.1041
- Fix startup deadlock on transient exceptions (#11142)
- Add warning log for end of support bundle version, any bundle version < 4 (#11075), (#11160)
- Handles loading extensions.json with empty extensions(#11174)
- Update HttpWorkerOptions to implement IOptionsFormatter (#11175)
- Improved metadata binding validation (#11101)
### Release notes

<!-- Please add your release notes in the following format:
- My change description (#PR)
-->
- Adding activity sources for Durable and WebJobs (Kafka and RabbitMQ) (#11137)
- Add JitTrace Files for v4.1041
- Fix startup deadlock on transient exceptions (#11142)
- Add warning log for end of support bundle version, any bundle version < 4 (#11075), (#11160)
- Handles loading extensions.json with empty extensions(#11174)
- Update HttpWorkerOptions to implement IOptionsFormatter (#11175)
- Improved metadata binding validation (#11101)
- Skip logging errors on gRPC client disconnect (#10572)
11 changes: 10 additions & 1 deletion src/WebJobs.Script.Grpc/Server/FunctionRpcService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
// Licensed under the MIT License. See License.txt in the project root for license information.

using System;
using System.IO;
using System.Reactive.Linq;
using System.Threading;
using System.Threading.Channels;
using System.Threading.Tasks;
using Grpc.Core;
using Microsoft.AspNetCore.Connections;
using Microsoft.Azure.WebJobs.Script.Eventing;
using Microsoft.Azure.WebJobs.Script.Grpc.Eventing;
using Microsoft.Azure.WebJobs.Script.Grpc.Messages;
using Microsoft.Extensions.Logging;

using MsgType = Microsoft.Azure.WebJobs.Script.Grpc.Messages.StreamingMessage.ContentOneofCase;

namespace Microsoft.Azure.WebJobs.Script.Grpc
Expand Down Expand Up @@ -75,6 +76,14 @@ static Task<Task<bool>> MoveNextAsync(IAsyncStreamReader<StreamingMessage> reque
}
}
}
catch (IOException ex) when (ex.InnerException is ConnectionAbortedException && context.CancellationToken.IsCancellationRequested)
{
// Expected when the client disconnects.
// Client side stream termination (e.g., process exit or network interruption)
// can cause MoveNext() to throw an IOException with a ConnectionAbortedException as the inner exception.
// If ServerCallContext's cancellation token is also canceled at this point, the exception can be safely ignored.
return;
}
catch (Exception rpcException)
{
// We catch the exception, just to report it, then re-throw it
Expand Down