Skip to content

az artifacts universal download fails on Windows 10 ReFS #27778

@avivanoff

Description

@avivanoff

Describe the bug

  • Install Windows 10 Pro for Workstations or Windows 10 Enterprise.
  • Create ReFS volume and assign some drive letter (for instance D).
  • Run the following command:
    az artifacts universal download --org <your_org> --feed <your_feed> --name <some_artifact> --version <artifact_version> --path “d:\artifacts”
  • The command fails with the following error:
    Encountered an unexpected error.
    System.IO.IOException: Hard linking failed!

Related command

az artifacts universal download

Errors

Encountered an unexpected error.
System.IO.IOException: Hard linking failed!

Issue script & Debug output

cli.azext_devops.dev.common.artifacttool: Encountered an unexpected error.
System.IO.IOException: Hard linking failed!
Status: FailedSinceNotSupportedByFilesystem
Path: f:!\Assessment/Shavlik Patch SDK - Windows Patch Assessment.pdf
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreClient.DownloadAndHardlinkTempFile(DedupNode node, String fullPath, Uri proxyUri, EdgeCache edgeCache, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreClient.DownloadToFileAsync(DedupNode node, String fullPath, Uri proxyUri, EdgeCache edgeCache, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreClientWithDataport.DownloadToFileAsync(IDedupDataPort dataport, DedupNode node, String fullPath, Uri proxyUri, EdgeCache edgeCache, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreClientWithDataport.DownloadToFileAsync(IDedupDataPort dataport, DedupIdentifier dedupId, String fullPath, UInt64 fileSize, GetDedupAsyncFunc dedupFetcher, Uri proxyUri, EdgeCache edgeCache, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupManifestArtifactClient.<>c__DisplayClass31_0.<b__5>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.VisualStudio.Services.Content.Common.NonSwallowingActionBlock.<>c__DisplayClass5_01.<<CreateNonSwallowingFunc>b__0>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.VisualStudio.Services.Content.Common.TargetBlockExtensions.SendAllAndCompleteAsync[T1,T2](ITargetBlock1 targetBlock, IEnumerable1 inputs, ITargetBlock1 finalBlock, CancellationToken token)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupManifestArtifactClient.DownloadAsyncWithManifestPath(DownloadDedupManifestArtifactOptions downloadOptions, IEnumerable1 minimatcherFuncs, Boolean downloadManifestReferences, ISet1 excludedPaths, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupManifestArtifactClient.DownloadSingleManifestAsync(DownloadDedupManifestArtifactOptions downloadOptions, Boolean downloadManifestReferences, ISet1 excludedPaths, CancellationToken cancellationToken) at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupManifestArtifactClient.DownloadAsync(DownloadDedupManifestArtifactOptions downloadOptions, CancellationToken cancellationToken) at Microsoft.VisualStudio.Services.Packaging.UPackClientShared.UPackSharedClient.DownloadAsync(String projectNameOrId, String feedNameOrId, String packageName, String packageVersion, String targetDirectory, IEnumerable1 minimatchPatterns, CancellationToken cancellationToken)
at ArtifactTool.Commands.UPack.UPackDownloadCommandBase.<>c__DisplayClass2_0.<b__0>d.MoveNext() in D:\a\1\s\src\ArtifactTool\Commands\UPack\UPackDownloadCommandBase.cs:line 25
--- End of stack trace from previous location ---
at ArtifactTool.Commands.UPack.UPackExceptionMapper.WithExceptionHandlingAsync(Func`1 act) in D:\a\1\s\src\ArtifactTool\Commands\UPack\UPackExceptionMapper.cs:line 39
at ArtifactTool.Commands.UPack.UPackDownloadCommandBase.DownloadPackageAsync(UPackSinglePackageDownloadRequest request) in D:\a\1\s\src\ArtifactTool\Commands\UPack\UPackDownloadCommandBase.cs:line 22
at ArtifactTool.Commands.UPackDownloadCommand.ExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\UPack\UPackDownloadCommand.cs:line 41
at ArtifactTool.Commands.CommandBase.OnExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\CommandBase.cs:line 105
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.InvokeAsync(MethodInfo method, Object instance, Object[] arguments) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 77
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 62
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<b__0>d.MoveNext() in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 25
--- End of stack trace from previous location ---
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass126_0.b__0() in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 505
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 611
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 57
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 145
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](IConsole console, String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 130
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 112

Expected behavior

The command should succeed.

Environment Summary

azure-cli 2.53.1

core 2.53.1
telemetry 1.1.0

Extensions:
azure-devops 0.26.0

Dependencies:
msal 1.24.0b2
azure-mgmt-resource 23.1.0b2

Python location 'C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe'
Extensions directory 'C:\Users\tmp.azure\cliextensions'

Python (Windows) 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)]

Legal docs and information: aka.ms/AzureCliLegal

Your CLI is up-to-date.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Artifactsaz artifactsAuto-AssignAuto assign by botService AttentionThis issue is responsible by Azure service team.act-observability-squadbugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions