dotnet / orleans

Cloud Native application framework for .NET
https://docs.microsoft.com/dotnet/orleans
MIT License
10.11k stars 2.04k forks source link

Unneeded exception in AzureBlobStorage when Clearing state #7791

Open marcelk-workstreampeople-com opened 2 years ago

marcelk-workstreampeople-com commented 2 years ago

Hi,

When I try to unsubscribe the last subscriber form a stream where no publishers are stored and log level is set to Trace, the call to GetPropertiesAsync will result in an exception.

image


Part of exception:

Exc level 0: Azure.RequestFailedException: Service request failed. Status: 404 (The specified blob does not exist.) ErrorCode: BlobNotFound

Headers: Transfer-Encoding: chunked Server: Windows-Azure-Blob/1.0,Microsoft-HTTPAPI/2.0 x-ms-request-id: 4ee5dbb8-a01e-0006-25eb-7f4e75000000 x-ms-client-request-id: d6866991-9bcc-4b1a-9035-54a47ffffa0a x-ms-version: 2019-07-07 x-ms-error-code: BlobNotFound Date: Tue, 14 Jun 2022 12:38:59 GMT

at Azure.Storage.Blobs.BlobRestClient.Blob.GetPropertiesAsync_CreateResponse(ClientDiagnostics clientDiagnostics, Response response) at Azure.Storage.Blobs.BlobRestClient.Blob.GetPropertiesAsync(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri resourceUri, String version, String snapshot, Nullable1 timeout, String leaseId, String encryptionKey, String encryptionKeySha256, Nullable1 encryptionAlgorithm, Nullable1 ifModifiedSince, Nullable1 ifUnmodifiedSince, Nullable1 ifMatch, Nullable1 ifNoneMatch, String requestId, Boolean async, String operationName, CancellationToken cancellationToken) at Azure.Storage.Blobs.Specialized.BlobBaseClient.GetPropertiesInternal(BlobRequestConditions conditions, Boolean async, CancellationToken cancellationToken) at Azure.Storage.Blobs.Specialized.BlobBaseClient.GetPropertiesAsync(BlobRequestConditions conditions, CancellationToken cancellationToken) at Orleans.Storage.AzureBlobGrainStorage.ClearStateAsync(String grainType, GrainReference grainId, IGrainState grainState) at Orleans.Core.StateStorageBridge`1.ClearStateAsync()

ghost commented 2 years ago

We've moved this issue to the Backlog. This means that it is not going to be worked on for the coming release. We review items in the backlog at the end of each milestone/release and depending on the team's priority we may reconsider this issue for the following milestone.

ReubenBond commented 2 years ago

Hi @marcelk-workstreampeople-com, thanks for reporting. You're right, this is essentially a no-op. If you're willing, a PR to remedy this would be most appreciated.