Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix unintentional input unwrapping for OOP workers #2656

Merged
merged 4 commits into from
Nov 9, 2023
Merged

Conversation

jviau
Copy link
Contributor

@jviau jviau commented Nov 2, 2023

This PR fixes an issue where when dispatching JToken values to an out-of-proc worker, we would unwrap the serialized contents, thus causing serialization to fail.

Issue describing the changes in this PR

resolves #2504, microsoft/durabletask-dotnet#199

Pull request checklist

  • My changes do not require documentation changes
    • Otherwise: Documentation PR is ready to merge and referenced in pending_docs.md
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • I have added all required tests (Unit tests, E2E tests)
  • My changes do not require any extra work to be leveraged by OutOfProc SDKs
    • Otherwise: That work is being tracked here: #issue_or_pr_in_each_sdk
  • My changes do not change the version of the WebJobs.Extensions.DurableTask package
    • Otherwise: major or minor version updates are reflected in /src/Worker.Extensions.DurableTask/AssemblyInfo.cs
  • My changes do not add EventIds to our EventSource logs
    • Otherwise: Ensure the EventIds are within the supported range in our existing Windows infrastructure. You may validate this with a deployed app's telemetry. You may also extend the range by completing a PR such as this one.
  • My changes should be added to v3.x branch.
    • Otherwise: This change only applies to Durable Functions v2.x and will not be merged to branch v3.x.

@jviau
Copy link
Contributor Author

jviau commented Nov 2, 2023

TODO: need to see if this is a breaking change for other languages (JS for example)

Adjusted the fix to not impact JS or any other older style out-of-proc languages.

Copy link
Contributor

@davidmrdavid davidmrdavid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but let's wait for CI

Comment on lines -132 to +135
if (destinationType.Equals(typeof(string)))
if (this.rawInput)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

retroactive bug find: this change in the if-condition affects the "legacy" OOProc SDKs - JS, PowerShell, Python. In those cases, the destinationType is string, so we should have entered this if-statement, but we no longer do.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ironically, the comment here describes precisely how this if statement was supposed to be used, but we missed that during review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Isolated] Durable activity input binding does not respect JSON converter
2 participants