camunda-community-hub / zeebe-client-csharp

Contains an Zeebe C# client implementation.
https://camunda-community-hub.github.io/zeebe-client-csharp/
Apache License 2.0
99 stars 53 forks source link

Possible issues using the .NET 7.0 SDK for builds #582

Closed daghsentinel closed 9 months ago

daghsentinel commented 1 year ago

Describe the bug We're experiencing "Deadline exceeded" for all communication after upgrading the client to 2.2.0 for our .NET 8.0 RC1/2 projects.

To Reproduce Include client v2.2.0 in any project and try to create workflows, either on prem or in Camunda Cloud

Expected behavior Command goes through

Enviroment (please complete the following information):

Additional context Can the fact that the CI build is configured to use .NET 7.0 SDK be the real issue here? I notice that the CI workflow is persistently using .NET 7.0, also for .NET 8.0 builds.

Zelldon commented 1 year ago

Hey @daghsentinel thanks for reporting!

Can you exclude that this is not happening with older versions? Can you share the complete error/exception with stracktrace ? Which version are your brokers and gateways?

Do you have any cluster id you could share?

Zelldon commented 1 year ago

@xlegalles do you experience similar issues?

xlegalles commented 1 year ago

We are still using v2.0. I will upgrade and tell you.

But just a quick note about the fact that v2.3 is built for .NET 6 and 7, not for .NET 8 i.e. if you open the Nuget package, there is no .NET 8 version, so it's not surprising that a .NET 8 app uses the zeebe client built for .NET 7. To be honest, I don't know what are the consequences and if there can be incompatibilities (because of Grpc for instance).

Now, It's up to you @Zelldon to decide when to add a .NET 8 version as it's still a preview version.

daghsentinel commented 1 year ago

Hi, @Zelldon. I did a little concept of forking this repo, updating TargetFrameworks to include net8.0 and can confirm that all our tests are green afterwards. This works with the latest version (2.3.0). As .NET 8.0 RC1/RC2 versions are production ready, will it be possible to also add .NET 8.0 as a Target Framework for the client? This will also imply that it must be built using the latest .NET 8 SDK.

If that's not possible right now, I'll just keep my fork, use it in our apps and update to the official .NET 8 version as soon as it arrives.

Zelldon commented 1 year ago

Thank you both @daghsentinel and @xlegalles for your input!

Yeah based on what I can see here https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core and other resources I would prefer to only support it when it is officially released, so let's wait for November.

I will keep this issue open so I can reference a PR in November for that. Feel free to create a PR then if you are interested.

P.S: TIL; I somehow expected that the .net versions are backwards compatible and that you can run a .net7 lib with .net8, but seems not. Interesting.

daghsentinel commented 1 year ago

Thanks, @Zelldon.

A thing to consider: When it comes to support, the versions of .NET (Core) officially supported by MS is now

The rest are either out of support or supported in the future, like .NET 8 full release)