0
votes

Hellow

Gettging the following error when publishing the pipeline artifacts

##[error]Unable to load symbolic/hard linked file. Check 'fsutil behavior query SymlinkEvaluation' to ensure proper behavior.

Pipeline (PHP Laravel artifacts)

PHP

Test and package your PHP project.

Add steps that run tests, save build artifacts, deploy, and more:

https://docs.microsoft.com/azure/devops/pipelines/languages/php

trigger:

  • master

pool: vmImage: 'ubuntu-latest'

variables: phpVersion: 7.2

steps:

  • script: | sudo update-alternatives --set php /usr/bin/php$(phpVersion) sudo update-alternatives --set phar /usr/bin/phar$(phpVersion) sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion) sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion) sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion) php -version displayName: 'Use PHP version $(phpVersion)'

  • script: |
    sudo composer self-update composer global require laravel/installer composer update --no-interaction --prefer-dist --no-suggest composer --version 'Deploy Laravel'

  • task: PublishPipelineArtifact@1 inputs: targetPath: '$(Pipeline.Workspace)' artifact: 'PriVet_Backend_$(Build.BuildId)' publishLocation: 'pipeline'

From the logs:

2020-07-01T08:13:09.8456382Z Error, System.IO.FileLoadException: Unable to load symbolic/hard linked file. Check 'fsutil behavior query SymlinkEvaluation' to ensure proper behavior. 2020-07-01T08:13:09.8457580Z ---> System.IO.FileNotFoundException: Could not find file '/home/vsts/work/1/s/www/vendor/amphp/parallel-functions/docs/asset'. 2020-07-01T08:13:09.8458469Z File name: '/home/vsts/work/1/s/www/vendor/amphp/parallel-functions/docs/asset' 2020-07-01T08:13:09.8459102Z at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter) 2020-07-01T08:13:09.8459726Z at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) 2020-07-01T08:13:09.8460360Z at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 2020-07-01T08:13:09.8461407Z at Microsoft.VisualStudio.Services.Content.Common.FileStreamUtils.OpenFileStreamForAsync(String filePath, FileMode mode, FileAccess fileAccess, FileShare fileShare, FileOptions extraOptions) 2020-07-01T08:13:09.8462269Z at Microsoft.VisualStudio.Services.BlobStore.Common.ChunkerHelper.CreateFromFileAsync(IFileSystem fileSystem, String path, CancellationToken cancellationToken, Boolean configureAwait) 2020-07-01T08:13:09.8463250Z at Microsoft.VisualStudio.Services.BlobStore.Common.FileBlobDescriptor.CalculateAsync(IFileSystem fileSystem, String rootDirectory, Boolean chunkDedup, String relativePath, FileBlobType fileBlobType, CancellationToken cancellationToken) 2020-07-01T08:13:09.8464322Z at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.GetFileBlobDescriptorAsync(String rootDirectory, Boolean chunkDedup, PageItem pageItem, CancellationToken cancellationToken) 2020-07-01T08:13:09.8465253Z at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.GetFileBlobDescriptorAsync(String rootDirectory, Boolean chunkDedup, PageItem pageItem, CancellationToken cancellationToken) 2020-07-01T08:13:09.8466173Z at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.<>c__DisplayClass26_0.<<PaginateAndProcessFilesHelperAsync>b__0>d.MoveNext() 2020-07-01T08:13:09.8467610Z --- End of stack trace from previous location where exception was thrown --- 2020-07-01T08:13:09.8468136Z at Microsoft.VisualStudio.Services.Content.Common.NonSwallowingActionBlock.<>c__DisplayClass5_01.<b__0>d.MoveNext() 2020-07-01T08:13:09.8468799Z --- End of stack trace from previous location where exception was thrown --- 2020-07-01T08:13:09.8469476Z at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.PaginateAndProcessFilesHelperAsync(String sourceDirectory, Boolean chunkDedup, IEnumerable1 pathsInDir, Action1 hashCompleteCallback, CancellationToken cancellationToken) 2020-07-01T08:13:09.8470201Z at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.<>c__DisplayClass22_0.<b__0>d.MoveNext() 2020-07-01T08:13:09.8529135Z Information, 7472 files processed. 2020-07-01T08:13:09.8542251Z Information, 7572 files processed. 2020-07-01T08:13:09.8546157Z Information, 7672 files processed. 2020-07-01T08:13:09.8569555Z Information, 7772 files processed. 2020-07-01T08:13:09.8596993Z Information, 7872 files processed. 2020-07-01T08:13:09.8633894Z Information, 7972 files processed. 2020-07-01T08:13:09.8643831Z Information, 8072 files processed. 2020-07-01T08:13:09.8664592Z Information, 8172 files processed. 2020-07-01T08:13:09.8664847Z Information, 8272 files processed. 2020-07-01T08:13:09.8665070Z Information, 8372 files processed. 2020-07-01T08:13:09.8665268Z Information, 8472 files processed. 2020-07-01T08:13:09.8665472Z Information, 8572 files processed. 2020-07-01T08:13:09.8667556Z Information, 8672 files processed. 2020-07-01T08:13:11.7076135Z Information, ApplicationInsightsTelemetrySender correlated 2 events with X-TFS-Session f56bb233-a941-4e13-97dc-2efe60c398fe 2020-07-01T08:13:11.7128821Z ##[error]Unable to load symbolic/hard linked file. Check 'fsutil behavior query SymlinkEvaluation' to ensure proper behavior. 2020-07-01T08:13:11.7138924Z ##[debug]Processed: ##vso[task.logissue type=error;]Unable to load symbolic/hard linked file. Check 'fsutil behavior query SymlinkEvaluation' to ensure proper behavior. 2020-07-01T08:13:11.7153064Z ##[debug]Processed: ##vso[task.complete result=Failed;] 2020-07-01T08:13:11.7158800Z ##[debug] at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.GetFileBlobDescriptorAsync(String rootDirectory, Boolean chunkDedup, PageItem pageItem, CancellationToken cancellationToken) at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.<>c__DisplayClass26_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.Content.Common.NonSwallowingActionBlock.<>c__DisplayClass5_01.<<CreateNonSwallowingFunc>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.PaginateAndProcessFilesHelperAsync(String sourceDirectory, Boolean chunkDedup, IEnumerable1 pathsInDir, Action1 hashCompleteCallback, CancellationToken cancellationToken) at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.<>c__DisplayClass22_0.<<PaginateAndProcessFiles>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.Content.Common.ExceptionExtensions.ReThrow(Exception ex) at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.<>c__DisplayClass22_0.<<PaginateAndProcessFiles>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.Content.Common.NonSwallowingActionBlock.<>c__DisplayClass5_01.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.BlobStore.Common.PrecomputedHashesGenerator.PaginateAndProcessFiles(String sourceDirectory, Boolean chunkDedup, IEnumerable1 pages, CancellationToken cancellationToken, Action1 hashCompleteCallback) at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupManifestArtifactClient.PublishAsync(String fullPath, ArtifactPublishOptions artifactPublishOptions, String manifestFileOutputPath, CancellationToken cancellationToken) at Agent.Plugins.PipelineArtifact.PipelineArtifactServer.<>c__DisplayClass2_0.<b__1>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Services.BlobStore.Common.Telemetry.BlobStoreClientTelemetry.MeasureActionAsync[TResult](BlobStoreTelemetryRecord record, Func1 actionAsync) at Microsoft.VisualStudio.Services.Content.Common.ExceptionExtensions.ReThrow(Exception ex) at Microsoft.VisualStudio.Services.BlobStore.Common.Telemetry.BlobStoreClientTelemetry.MeasureActionAsync[TResult](BlobStoreTelemetryRecord record, Func1 actionAsync) at Agent.Plugins.PipelineArtifact.PipelineArtifactServer.UploadAsync(AgentTaskPluginExecutionContext context, Guid projectId, Int32 pipelineId, String name, String source, CancellationToken cancellationToken) at Agent.Plugins.PipelineArtifact.PublishPipelineArtifactTaskV1.ProcessCommandInternalAsync(AgentTaskPluginExecutionContext context, CancellationToken token) at Agent.PluginHost.Program.Main(String[] args) 2020-07-01T08:13:11.7255180Z ##[section]Finishing: PublishPipelineArtifact

1
For a start, can you please apply some more formatting to your question?Sebastian B.
Hi Did you checked if original file which the symbolic file linked existed? See below answer for more information.Levi Lu-MSFT

1 Answers

0
votes

When PublishPipelineArtifact task publishes a folder which contains a symbolic link. It does not preserve the symlink file. Instead the original file(that the symbolic link points to) will be copied in the artifact.

From above error of yours, It looks like the original file which the symbolic file /home/vsts/work/1/s/www/vendor/amphp/parallel-functions/docs/asset points cannot be found.

You can run ls -l symboliclink n a bash task (ie.ls -l $(Build.SourcesDirectory)/www/vendor/amphp/parallel-functions/docs/asset) to check where the symbolic link points to. And make sure the origin file exists.

If the files in folder /home/vsts/work/1/s/www/vendor/amphp/parallel-functions/docs/asset can be omitted in the Artifacts. You can add a .artifactignore file in the same directory as defined as target path to ignore the symbolic file and its contents.