dotnet-sdk icon indicating copy to clipboard operation
dotnet-sdk copied to clipboard

Enable specifying Grpc options like " MaxReceiveMessageSize" in WorkflowServiceCollectionExtensions

Open hsinghdeol-wpay opened this issue 2 years ago • 2 comments

Currently dapr workflows fail with following error 2023-10-11T06:26:20.075785954Z Grpc.Core.RpcException: Status(StatusCode="ResourceExhausted", Detail="Received message exceeds the maximum configured message size.") 2023-10-11T06:26:20.075793354Z at Grpc.Net.Client.StreamExtensions.ReadMessageAsync[TResponse](Stream responseStream, GrpcCall call, Func2 deserializer, String grpcEncoding, Boolean singleMessage, CancellationToken cancellationToken) 2023-10-11T06:26:20.075801654Z at Grpc.Net.Client.Internal.HttpContentClientStreamReader2.MoveNextCore(CancellationToken cancellationToken) 2023-10-11T06:26:20.075833955Z at Microsoft.DurableTask.GrpcExtensions.ReadAllAsync[T](IAsyncStreamReader1 reader, CancellationToken cancellationToken)+MoveNext() 2023-10-11T06:26:20.075841955Z at Microsoft.DurableTask.GrpcExtensions.ReadAllAsync[T](IAsyncStreamReader1 reader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult() 2023-10-11T06:26:20.075852855Z at Microsoft.DurableTask.Worker.Grpc.GrpcDurableTaskWorker.Processor.ProcessWorkItemsAsync(AsyncServerStreamingCall1 stream, CancellationToken cancellation) 2023-10-11T06:26:20.075860455Z at Microsoft.DurableTask.Worker.Grpc.GrpcDurableTaskWorker.Processor.ProcessWorkItemsAsync(AsyncServerStreamingCall1 stream, CancellationToken cancellation) 2023-10-11T06:26:20.075866755Z at Microsoft.DurableTask.Worker.Grpc.GrpcDurableTaskWorker.Processor.ExecuteAsync(String target, CancellationToken cancellation) I found out that there is no way to override default limit of 4mb in the following file. https://github.com/dapr/dotnet-sdk/blob/3b979e6bdb1d779563f1656fa684183b2bfecd08/src/Dapr.Workflow/WorkflowServiceCollectionExtensions.cs#L159

There should be way to override default GRPC options

hsinghdeol-wpay avatar Oct 11 '23 21:10 hsinghdeol-wpay

I've run into this as well. I know this was referenced in https://github.com/dapr/dotnet-sdk/issues/978#issuecomment-1760474157, but also bringing this up in this issue.

It seems like DurableTasks has a hard limit of 4MB as noted in https://github.com/microsoft/durabletask-dotnet/issues/150#issuecomment-1569165595, and the Dotnet SDK for Dapr Workflow uses that underneath. Do we think it'd be a good idea to update the Dapr documentation for this if this is now a known (and presumedly unsolvable by Dapr) issue?

Not sure if https://github.com/microsoft/durabletask-dotnet/issues/154 is something that will alleviate this, however.

zminot avatar Jan 18 '24 18:01 zminot