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

Upgrading from Microsoft.Azure.WebJobs.Extensions.DurableTask Version= 2.3.1 to version 2.4.0 creates compile conflict with System.Reactive 4.4.0 #1620

Closed
Arash-Sabet opened this issue Dec 19, 2020 · 8 comments
Assignees
Labels
Needs: Investigation 🔍 A deeper investigation needs to be done by the project maintainers.
Milestone

Comments

@Arash-Sabet
Copy link

Description

Create a function project and reference both nuget packages mentioned in the title of this ticket. Write a piece of code like the following snippet:

IObservable<T>.Subscribe(
				onNext: _ =>
				{
					//do something
				},
				onError: exception =>
				{
					//do something
				},
				onCompleted: () =>
				{
					//do something
				});

You will get the following compile error:

Error | CS0121 | The call is ambiguous between the following methods or properties: 'System.ObservableExtensions.Subscribe(System.IObservable, System.Action, System.Action<System.Exception>, System.Action)' and 'System.ObservableExtensions.Subscribe(System.IObservable, System.Action, System.Action<System.Exception>, System.Action)' |

Expected behavior

There should not be a compile error.

Actual behavior

The compile error quoted above happens.

Relevant source code snippets

Already shared.

Known workarounds

None

App Details

  • Durable Functions extension version 2.4.0:
  • Azure Functions runtime version 3.1:
  • Programming language used: C#

Screenshots

n/a

If deployed to Azure

No

@ghost ghost added the Needs: Triage 🔍 label Dec 19, 2020
@Arash-Sabet
Copy link
Author

@cgillum Could you please have someone look into this issue? I have had to revert to version 2.3.1 of Microsoft.Azure.WebJobs.Extensions.DurableTask to avoid this conflict.

@Arash-Sabet
Copy link
Author

@anthonychu Would you please let me know who the best person is to escalate this issue to? This issue is a blocker to progress further.

@ConnorMcMahon ConnorMcMahon added Needs: Investigation 🔍 A deeper investigation needs to be done by the project maintainers. and removed Needs: Triage 🔍 labels Jan 14, 2021
@ConnorMcMahon ConnorMcMahon self-assigned this Jan 14, 2021
@ConnorMcMahon
Copy link
Contributor

@Arash-Sabet

So this looks like due to a dependency taken by DurableTask.Core (v2.5.0) on System.Reactive.Core v3.x. I don't think this dependency is required, as it builds without it, so we can likely remove this in a subsequent release.

As a workaround in the meantime, I found this stackoverflow answer. You can either force System.Reactive.Core up to v4 by explicitly including it with v4.4.1 in your csproj, or you can use System.Reactive.Compatibility nuget package to resolve the issue.

@Arash-Sabet
Copy link
Author

@Arash-Sabet

So this looks like due to a dependency taken by DurableTask.Core (v2.5.0) on System.Reactive.Core v3.x. I don't think this dependency is required, as it builds without it, so we can likely remove this in a subsequent release.

As a workaround in the meantime, I found this stackoverflow answer. You can either force System.Reactive.Core up to v4 by explicitly including it with v4.4.1 in your csproj, or you can use System.Reactive.Compatibility nuget package to resolve the issue.

Thanks. I will have the workaround given a try. When do you think the new subsequent release will be ready after the removal of the dependency?

@ConnorMcMahon
Copy link
Contributor

Currently targeting code freeze of tomorrow, release by January 20th.

@ConnorMcMahon
Copy link
Contributor

It turns out that System.Reactive.Core is required now by DurableTask.Core, so we will be adding System.Reactive.Compatibility as well to avoid the conflict.

@Arash-Sabet
Copy link
Author

The workaround caused some other changes in our code which are vaster than one area. A lot of changes need to be done in referenced libraries and therefore nuget packages to be updated and deployed. So, we have to wait for the new release by Microsoft. @ConnorMcMahon

ConnorMcMahon pushed a commit to Azure/durabletask that referenced this issue Jan 15, 2021
…#501)

The Distributed Tracing work required adding System.Reactive.Core as a
dependency. However, if the customer app was using a different major
version of System.Reactive, it could lead to ambiguous compilation
issues.

Adding this package (and upgrading to use v4 of System.Reactive.Core)
should resolve this issue.

Addresses Azure/azure-functions-durable-extension#1620
@davidmrdavid
Copy link
Contributor

Closing because the corresponding PR has been merged ⚡ ⚡

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: Investigation 🔍 A deeper investigation needs to be done by the project maintainers.
Projects
None yet
Development

No branches or pull requests

3 participants