Skip to content

Migrate DurableTask.ServiceBus ServiceBus SDK from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus#1014

Merged
cgillum merged 15 commits intoAzure:mainfrom
NateLehman:masToAmsMigration
Apr 19, 2024
Merged

Migrate DurableTask.ServiceBus ServiceBus SDK from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus#1014
cgillum merged 15 commits intoAzure:mainfrom
NateLehman:masToAmsMigration

Conversation

@NateLehman
Copy link
Contributor

@NateLehman NateLehman commented Dec 8, 2023

Validation strategies for .NET Core version

It has come to my attention that the .NET Core version of this library needs additional validation. This section describes validations performed manually.
 

Leveraging a real world prod service

Without revealing much about our internal design, my team uses DTF ServiceBus for running workflows in a .NET Core project. I've locally sideloaded this new version into a worker service running in a dev environment that consumes real world application orchestrations.

The tasks and orchestrations consumed by the worker running with the sideloaded library did not produce unhandled exceptions and did not behave in any way that suggested issues. Additionally, the worker was running in concert with other worker instances that were running the current stable version without Azure.Messaging.ServiceBus; I consider this a testament to its compatibility.

Running DurableTask.ServiceBus.Tests project

I also set up live ServiceBus and AzureStorage resources in my own Azure subscription and added their connections strings to the project. This allowed me to run the DurableTask.ServiceBus.Tests(netcoreapp3.1) project against real world resources and validate those scenarios. I am attaching a VSTest overview screenshot as proof of these results:
image

NOTE: All of the failing tests in this image are ALSO failing in the previous stable version (when I switch to main branch).

Copy link
Member

@cgillum cgillum left a comment

Choose a reason for hiding this comment

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

A couple administrative comments (haven't looked at the core implementation quite yet):

@cgillum
Copy link
Member

cgillum commented Dec 8, 2023

/azp run

@azure-pipelines
Copy link

azure-pipelines bot commented Dec 8, 2023

EDIT: Azure Pipelines run triggered successfully.

@NateLehman
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Commenter does not have sufficient privileges for PR 1014 in repo Azure/durabletask

public async Task SetStateAsync(byte[] sessionState)
{
await this.session.SetStateAsync(sessionState);
if (sessionState == null)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this looks a bit weird, but it prevents InvalidArgumentExceptions and retains compatibility

@davidmrdavid
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@davidmrdavid
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@davidmrdavid
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@NateLehman
Copy link
Contributor Author

There's now a successful pipeline run associated with this PR.

image

I think there are some details about the GitHub<->Azure DevOps integration that I'm not familiar with. It looks like this is being blocked from merging based on a previous run.

@cgillum
Copy link
Member

cgillum commented Mar 21, 2024

/azp run

@azure-pipelines
Copy link

azure-pipelines bot commented Mar 21, 2024

EDIT: Azure Pipelines run created successfully.

Copy link
Member

@cgillum cgillum left a comment

Choose a reason for hiding this comment

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

Everything looks good from my perspective. I confirmed that the CI is executing both the Azure Storage and Service Bus tests in a distributed way. I think we should be good to merge this now.

Copy link
Member

@cgillum cgillum left a comment

Choose a reason for hiding this comment

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

Ah, I think I mispoke. It seems the tests are actually still just running the net462 variants, according to the logs:

Source filter: \bin\Debug\net462\DurableTask.AzureStorage.Tests.dll,\bin\Debug\net462\DurableTask.ServiceBus.Tests.dll,\bin\Debug\net462\DurableTask.Core.Tests.dll,\bin\Debug\net462\DurableTask.Emulator.Tests.dll,!**\obj**

We'll need to update the pipeline to run the .NET Core variant of these libraries.

@cgillum
Copy link
Member

cgillum commented Apr 17, 2024

/azp run

@azure-pipelines
Copy link

azure-pipelines bot commented Apr 17, 2024

EDIT: Azure Pipelines run created successfully.

@cgillum
Copy link
Member

cgillum commented Apr 19, 2024

I manually ran the DTFx Build & Run Tests (ServiceBus) pipeline and confirmed that it's also green. Merging.

@cgillum cgillum merged commit b06f7b5 into Azure:main Apr 19, 2024
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.

3 participants