Uh oh!
There was an error while loading. Please reload this page.
Include Exception Properties at FailureDetails - #474
Conversation
| } | ||
| } | ||
| static P.TaskFailureDetails? GetFailureDetails(FailureDetails? failureDetails) |
There was a problem hiding this comment.
remove this because we will call the one at ptobufutils instead
Uh oh!
There was an error while loading. Please reload this page.
| exception.StackTrace, | ||
| FromExceptionRecursive(exception.InnerException)); | ||
| FromExceptionRecursive(exception.InnerException), | ||
| null);// might need to udpate this later |
There was a problem hiding this comment.
Question for the public static TaskFailureDetails FromException(Exception exception)
I checked all the reference, and it seems all the cases we called this is when the exception is a DTCore.OrchestrationExcep, which means it should already have properties included. Thus currently we don't need to extract properties here.
But I am not sure if there might be a case when the exception is not from dt.core and this return new FailureDetails block is reached. If so, then we need to extract properties in this repo, which means I need to update OrchestrationContextWrapper class etc. But I didn't find a case like this from current code path. Let me know if there is any other thought on this.
| ? new(new(p.Name), p.OrchestrationInstance.InstanceId) | ||
| : null; | ||
| DurableTaskShimFactory factory = services is null |
There was a problem hiding this comment.
I only updated line 211 to 226.. the whole file changed because of the VS outlining thing
There was a problem hiding this comment.
I was able to read it properly if I turned off whitespace in the diff view. This can happen sometimes if VS or the git client changes the line endings.
Chris Gillum (cgillum)
left a comment
There was a problem hiding this comment.
A few initial comments. Haven't reviewed everything yet.
Uh oh!
There was an error while loading. Please reload this page.
| @@ -1,2 +1,2 @@ | |||
| # The following files were downloaded from branch main at 2025-09-17 01:45:58 UTC | |||
| https://raw.githubusercontent.com/microsoft/durabletask-protobuf/f5745e0d83f608d77871c1894d9260ceaae08967/protos/orchestrator_service.proto | |||
| # The following files were downloaded from branch nytian/failure-details at 2025-10-01 21:51:24 UTC | |||
There was a problem hiding this comment.
Reminder to update this to main once the protobuf changes in durabletask-protobuf are merged.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Phillip Hoff (philliphoff)
left a comment
There was a problem hiding this comment.
LGTM, apart from the note about updating the protobuf definitions once that related change is committed.
Chris Gillum (cgillum)
left a comment
There was a problem hiding this comment.
I finished reviewing everything and have a few more minor comments.
| /// </remarks> | ||
| public class DurableTaskShimFactory | ||
| { | ||
| public readonly IExceptionPropertiesProvider? exceptionPropertiesProvider; |
There was a problem hiding this comment.
Was making this public an accident? We should never have public fields.
There was a problem hiding this comment.
oh thanks for reminding. I added these at first because I thought we need this when using with durable functions isolated. But the test turns out actually we don't need to propagate provider from worker extensions to here. I just deleted these.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| ? new(new(p.Name), p.OrchestrationInstance.InstanceId) | ||
| : null; | ||
| DurableTaskShimFactory factory = services is null |
There was a problem hiding this comment.
I was able to read it properly if I turned off whitespace in the diff view. This can happen sometimes if VS or the git client changes the line endings.
| if (orchestrationActivity is null) | ||
| { | ||
| return null; | ||
| return DateTime.Parse(stringValue[3..], CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind); |
There was a problem hiding this comment.
Same comment about TryParse instead of Parse, though I wonder why we have this same logic in two places?
There was a problem hiding this comment.
The grpc integration test will not use the ProtoUtils under folder src/shared/grpc but will use the one at it's own folder which is test/Grpc.IntegrationTests/GrpcSidecar/Grpc/ProtobufUtils.cs
This PR supports register custom provider that help include exception properties at
TaskFailureDetails. Supports include running with both DurableTaskWorker and Durable Functions (.NET Isolated).Note: related PR :