Skip to content

Windows CI: parallel vcpkg z-applocal steps fail with file lock #944

Description

@wgtmac

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions