Summary
The Windows CI job fails during the Build Iceberg step because a post-link vcpkg z-applocal command cannot access a file that is locked by another process.
Failure details
Run:
https://github.com/apache/iceberg-cpp/actions/runs/35413148123/job/105816560819
The build reaches 955/958 targets. Compilation succeeds, but linking parquet_test.exe fails while running:
vcpkg.exe z-applocal
--target-binary=.../build/src/iceberg/test/parquet_test.exe
--installed-bin-dir=C:/vcpkg/installed/x64-windows/debug/bin
The reported error is:
The process cannot access the file because it is being used by another process.
Ninja then stops with exit code 1. The exact locked file is not reported.
Suspected cause
Multiple Windows test targets are linked in parallel, and their post-link z-applocal steps may concurrently copy or access the same dependency DLLs.
This appears to be a Windows build/deployment race rather than a C++ compile failure. The compiler reported zero compilation failures.
Possible fixes
- Serialize the
z-applocal post-link steps on Windows.
- Use a target-specific dependency copy directory.
- Add a bounded retry for transient file-lock failures.
- Disable automatic applocal deployment for test targets and copy dependencies once after the build.
Summary
The Windows CI job fails during the
Build Icebergstep because a post-linkvcpkg z-applocalcommand cannot access a file that is locked by another process.Failure details
Run:
https://github.com/apache/iceberg-cpp/actions/runs/35413148123/job/105816560819
The build reaches 955/958 targets. Compilation succeeds, but linking
parquet_test.exefails while running:The reported error is:
Ninja then stops with exit code 1. The exact locked file is not reported.
Suspected cause
Multiple Windows test targets are linked in parallel, and their post-link
z-applocalsteps may concurrently copy or access the same dependency DLLs.This appears to be a Windows build/deployment race rather than a C++ compile failure. The compiler reported zero compilation failures.
Possible fixes
z-applocalpost-link steps on Windows.