Skip to content

Conversation

@jsuarezruiz
Copy link
Contributor

Description of Change

Multiple projects have _CopyToBuildTasksDir targets that copy files to the same $(_MauiBuildTasksLocation) directory during build. When builds run in parallel, these Copy tasks create a race condition where one process might be writing a file while another process tries to read it.

In this PR, added retry logic with delays to all Copy tasks that write to the shared build tasks directory. Changed Retries="0" to Retries="3" RetryDelayMilliseconds="1000" to allow up to 3 retry attempts with 1-second delays between attempts. This provides more resilience against transient file locking during parallel builds but maintaining build performance.

Issues Fixed

Fixes #24615

Copilot AI review requested due to automatic review settings August 27, 2025 11:47
@jsuarezruiz jsuarezruiz requested a review from a team as a code owner August 27, 2025 11:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR addresses file locking race conditions that occur during parallel builds when multiple projects simultaneously copy files to the shared $(_MauiBuildTasksLocation) directory. The fix adds retry logic to all Copy tasks targeting this shared location.

  • Adds retry logic with 3 attempts and 1-second delays to prevent build failures from transient file locks
  • Standardizes retry behavior across all projects that copy to the shared build tasks directory
  • Maintains build performance while improving reliability in parallel build scenarios

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/SingleProject/Resizetizer/src/Resizetizer.csproj Added retry logic to two Copy tasks for resizetizer files and Svg.Skia.dll
src/Core/src/Core.csproj Added retry logic to Copy task for core framework files
src/Controls/src/SourceGen/Controls.SourceGen.csproj Added retry logic to Copy task for source generator assemblies
src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj Added retry logic to Copy task for build task assemblies
src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj Added retry logic to Copy task for binding source generator assemblies

@jfversluis jfversluis added the area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions label Sep 2, 2025
@jfversluis jfversluis merged commit 718adb7 into main Sep 2, 2025
129 checks passed
@jfversluis jfversluis deleted the fix-24615 branch September 2, 2025 08:37
@github-actions github-actions bot locked and limited conversation to collaborators Oct 2, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions t/housekeeping ♻︎

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Microsoft.Maui.Core.props" could not be loaded. The process cannot access the file

3 participants