Devolutions / Devolutions/UniGetUI
[BUG] vcpkg packages shouldn't be updated in parallel
- Dominant language
- C#
- Stars
- 26.1k
- Forks
- 924
- Avg merge
- 15h 52m
- Merged PRs (30d)
- 52
Description
### Please confirm these before moving forward
- [x] I have searched for my issue and have not found a work-in-progress/duplicate/resolved issue.
- [x] I have tested that this issue has not been fixed in the latest [(beta or stable) release](https://github.com/marticliment/WingetUI/releases/).
- [x] I have checked the [FAQ](https://github.com/marticliment/WingetUI#frequently-asked-questions) section for solutions.
- [x] This issue is about a bug (if it is not, please use the [correct template](https://github.com/marticliment/WingetUI/issues/new/choose)).
### UniGetUI Version
3.3.5
### Windows version, edition, and architecture
Windows 11 Pro
### Describe your issue
If I enable parallel updating of packages, `UniGetUI` will try to update multiple `vcpkg` packages at once which isn't supported.
From ChatGPT:
```
How vcpkg handles updates
vcpkg builds and installs packages into a central installed/ tree (unless you use manifest mode with an isolated build).
The build process for a single package is not parallelizable across multiple invocations of vcpkg. If you try to run vcpkg install or vcpkg upgrade in parallel processes against the same vcpkg instance, you risk:
File corruption in the buildtrees/, packages/, or installed/ directories.
Lock contention — recent vcpkg versions use a filesystem-based lock (.vcpkg-root/vcpkg.lock) to prevent simultaneous modifications. One process will wait, or fail, if another is already modifying the state.
```
Installing packages one by one is working fine but parallel processing yields errors (or potentially `vcpkg` corruptions).
### Steps to reproduce the issue
1. Have at least 2 `vcpkg` packages installed that aren't updated
2. Configure `UniGetUI` to use at least 2 operation in parallel under "Package operation preferences" -> "Choose how many operations should be performed in parallel"
3. Start all `vcpkg` updates at once in the UI
4. Observe how `UniGetUI` starts both or multiple vcpkg installs at once when it shouldn't do that (only 1 vcpkg update at the same time)
### UniGetUI Log
```text
Not necessary
```
### Package Managers Logs
```text
Package update operation for Package=abseil:x64-windows with Manager=vcpkg
Installation options:
Overriden options:
Version: 20250127.1#4 -> 20250512.1
Starting operation...
Executing process with StartInfo:
- FileName: "C:\vcpkg\vcpkg.exe"
- Arguments: "upgrade abseil:x64-windows --no-dry-run"
Start Time: "23/09/2025 19:07:25"
The following packages will be rebuilt:
* abseil:x64-windows@20250512.1
* opencv4[calib3d,core,directml,dnn,dshow,fs,gapi,highgui,intrinsics,jpeg,msmf,png,quirc,thread,tiff,webp,win32ui]:x64-windows@4.11.0#4
* opencv4[calib3d,core,directml,dnn,dshow,fs,gapi,highgui,intrinsics,jpeg,msmf,png,quirc,thread,tiff,webp,win32ui]:x64-windows-static@4.11.0#4
* protobuf:x64-windows@5.29.5#2
* protobuf:x64-windows-static@5.29.5#2
* re2:x64-windows@2025-08-12
* utf8-range:x64-windows@5.29.5
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
open_for_write("C:\vcpkg\buildtrees\detect_compiler\stdout-x64-windows.log"): permission denied
End Time: "23/09/2025 19:07:28"
Process return value: "1" (0x1)
Abseil could not be updated
```
### Relevant information
_No response_
### Screenshots and videos
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.