dotnet / arcade-services

Arcade Engineering Services
MIT License
61 stars 74 forks source link

Publishing should de-dupe asset target locations. #2386

Open mmitche opened 1 year ago

mmitche commented 1 year ago

If a branch has a default channel set up with the same branch going to two channels, we may see errors if the following happens:

Basically, you get a case where foo.zip should go to blobstorageaccount/bar on two separate threads. There are holds on the blobs during upload and we fail. As far as I know, if we attempt to re-publish the blobs, we won't see such an error because the blob will already exist, and we will realize it has the same contents as before.

D:\a\_work\1\s\.packages\microsoft.dotnet.arcade.sdk\8.0.0-beta.23151.4\tools\SdkTasks\PublishArtifactsInManifest.proj(144,5): error : Unexpected exception publishing file D:\a\_work\1\a\232fb35f-86f8-444d-ad0a-64972a27e970\Microsoft.TemplateEngine.Abstractions.8.0.100-preview.2.23153.3.symbols.nupkg to assets/symbols/Microsoft.TemplateEngine.Abstractions.8.0.100-preview.2.23153.3.symbols.nupkg: This operation is not permitted as the blob is immutable due to one or more legal holds.
D:\a\_work\1\s\.packages\microsoft.dotnet.arcade.sdk\8.0.0-beta.23151.4\tools\SdkTasks\PublishArtifactsInManifest.proj(144,5): error : RequestId:5605a626-101e-001c-69e8-4d4a42000000
D:\a\_work\1\s\.packages\microsoft.dotnet.arcade.sdk\8.0.0-beta.23151.4\tools\SdkTasks\PublishArtifactsInManifest.proj(144,5): error : Time:2023-03-03T15:55:27.3773342Z
D:\a\_work\1\s\.packages\microsoft.dotnet.arcade.sdk\8.0.0-beta.23151.4\tools\SdkTasks\PublishArtifactsInManifest.proj(144,5): error : Status: 409 (This operation is not permitted as the blob is immutable due to one or more legal holds.)
D:\a\_work\1\s\.packages\microsoft.dotnet.arcade.sdk\8.0.0-beta.23151.4\tools\SdkTasks\PublishArtifactsInManifest.proj(144,5): error : ErrorCode: BlobImmutableDueToLegalHold

I think this could be fixed in two ways:

Release Note Category

missymessa commented 1 year ago

Add to Publishing vNext epic.