Merged PR 800482: Do not try to flush page cache to filesystem for copy file pip sources

Flushing changes to the filesystem are intended for just-produced outputs. Do not attempt to do that for the source of a copy file pip when tracking a potential symlink chain. That may conflict with an attempt to hash a source file and throw a sharing violation.

Related work items: #2203343
This commit is contained in:
Serge Mera 2024-08-15 23:10:18 +00:00
Родитель 25317a6179
Коммит 97f8f16345
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -366,7 +366,9 @@ namespace BuildXL.Scheduler
{
var possiblyTracked = await environment.LocalDiskContentStore.TryTrackAsync(
FileArtifact.CreateSourceFile(chainElement),
environment.Configuration.Sandbox.FlushPageCacheToFileSystemOnStoringOutputsToCache,
// This chain corresponds to the source of the copy file pip, and therefore not an output file. Flushing is intended to happen
// for just-produced outputs.
tryFlushPageCacheToFileSystem: false,
// Tracking symlinks happen in the context of a non-process pip, so this is never a dynamic output
outputDirectoryRoot: AbsolutePath.Invalid,
ignoreKnownContentHashOnDiscoveringContent: true,