From 1b26bc396d6dbbc48ebcd4f377b6e1c160102ba7 Mon Sep 17 00:00:00 2001 From: Frank Wagner Date: Sun, 25 Oct 2026 10:48:19 +0100 Subject: [PATCH] The worker's host loads the blob extension that finds blobs written after its first poll Worker package 6.8.2 names blob extension 5.3.8, whose container scan never refreshes its start time: attachments from the cloud reached clients only after a restart of the worker (Azure/azure-sdk-for-net#61660, fixed in 5.3.10). --- .../Dbosoft.Bote.BoteWorker.csproj | 23 +++++++++++++++++++ .../HostExtensionsTests.cs | 20 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 test/Dbosoft.Bote.BoteWorker.Tests/HostExtensionsTests.cs diff --git a/src/workers/src/Dbosoft.Bote.BoteWorker/Dbosoft.Bote.BoteWorker.csproj b/src/workers/src/Dbosoft.Bote.BoteWorker/Dbosoft.Bote.BoteWorker.csproj index 4425578..82fff2f 100644 --- a/src/workers/src/Dbosoft.Bote.BoteWorker/Dbosoft.Bote.BoteWorker.csproj +++ b/src/workers/src/Dbosoft.Bote.BoteWorker/Dbosoft.Bote.BoteWorker.csproj @@ -34,6 +34,29 @@ + + + <_BlobsExtensionNamed>5.3.8 + <_BlobsExtensionFixed>5.3.10 + + + + <_NamedBlobsReference><PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage.Blobs" Version="$(_BlobsExtensionNamed)" /> + <_FixedBlobsReference><PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage.Blobs" Version="$(_BlobsExtensionFixed)" /> + <_ExtensionsProject>$([System.IO.File]::ReadAllText($(ExtensionsCsProj))) + + + + diff --git a/test/Dbosoft.Bote.BoteWorker.Tests/HostExtensionsTests.cs b/test/Dbosoft.Bote.BoteWorker.Tests/HostExtensionsTests.cs new file mode 100644 index 0000000..4291060 --- /dev/null +++ b/test/Dbosoft.Bote.BoteWorker.Tests/HostExtensionsTests.cs @@ -0,0 +1,20 @@ +using AwesomeAssertions; + +namespace Dbosoft.Bote.BoteWorker.Tests; + +public class HostExtensionsTests +{ + /// + /// Before 5.3.10 the outbox trigger finds only blobs written before the host's first poll: an + /// attachment from the cloud then waits for a restart of the worker (Azure/azure-sdk-for-net#61660). + /// + [Fact] + public void The_host_loads_a_blob_extension_that_finds_new_blobs() + { + var file = Path.Combine(AppContext.BaseDirectory, ".azurefunctions", "Microsoft.Azure.WebJobs.Extensions.Storage.Blobs.dll"); + File.Exists(file).Should().BeTrue("the worker's build puts the host's extensions there"); + + var version = System.Diagnostics.FileVersionInfo.GetVersionInfo(file).ProductVersion!.Split('+')[0]; + Version.Parse(version).Should().BeGreaterThanOrEqualTo(new Version(5, 3, 10)); + } +}