ReviewOS

pantry-pm/pantry

Investigate macOS cached Git install returning PathAlreadyExists

#250
Open chris opened this 8 days ago ·
8 days ago

A Craft macOS CI job restored an exact Pantry dependency cache, then Pantry 0.11.120 returned PathAlreadyExists for git-scm.org@2.53.0. Fourteen of fifteen native packages installed. This happened before the managed Git provider check or Vulkan ABI compilation.

The exact colliding path and root cause are still unknown. This issue must not be treated as fixed merely because the next install passed.

Observed failure: Craft run 40082460190, macOS Vulkan ABI job 120843491822.

The subsequent e3116292 macOS job 120848458354 restored the identical exact cache key and installed the same pinned packages successfully. Its managed-Git check, public graphics consumer and independent ABI tests passed. No cache removal, cache-key change, provider substitution or version change was used between these jobs.

Both jobs used the immutable Pantry action at 3de609e1a7e305393b3d94e2848d859b39c5b5de, native CLI 0.11.120, and the package cohort bun.com@1.4.2 git-scm.org@2.53.0 ziglang.org@0.18.0-dev.146+35accc06e.

The exact restored cache key was:

pantry-v5-darwin-arm64-ff2ba045973404eb0ee1f32ab34cb954bba2c97936d75c7e9e320d7e1e195151-0.11.120-224b16d07b5e101a6cdbe8262610ef49f56f75ea573b4d481e608249c4268c0a-d105178aaea0807b4c81818a43ae2c64efe72af8d1a072cb659aad4ddb6b85cb-bun.com@1.4.2 git-scm.org@2.53.0 ziglang.org@0.18.0-dev.146+35accc06e

Local investigation used unmodified original native CLI archives. A normal fresh Git install with 0.11.126 passed. Repeated cached installs passed 100 times with 0.11.120 and 100 times with 0.11.126 in an isolated project prefix. This does not reproduce the failed runner's restored tree, so it does not establish a fix.

Craft e3116292 adds failure-only evidence capture. On the next setup failure it records file modes and symlink targets under the restored Git prefix and .bin before a bounded verbose diagnostic install. The original required setup failure still fails CI. The cache key, package versions and provider checks remain unchanged. This diagnostic branch was not triggered in the successful subsequent macOS job.

Acceptance:

  • Retain an actual failing tree or a public-interface regression that identifies the colliding path and operation.
  • Repair the owning native installer or cache materialization code, preserving package identity and installed-consumer behavior.
  • Exercise repeat installs, restored/relocated prefixes and relevant filesystem concurrency at the failing boundary.
  • Keep required setup failures visible. Do not clear the cache, substitute providers or skip acceptance checks to obtain green status.
  • Verify the source fix and maintained public release before downstream adoption.
3 days ago

The same error has now appeared on Linux in the Stacks v0.75.375 exact-source gate: https://github.com/stacksjs/stacks/actions/runs/40979754099/attempts/2. Native CLI 0.11.138 reported git-scm.org@2.53.0 (PathAlreadyExists) while installing the required Git/curl/FFmpeg cohort; 87 of 88 packages installed. This run disabled dependency-cache restoration after a separate missing artifact identity warning, so this is not yet attributable to a restored Git cache.

The first attempt had installed the native cohort successfully but later hit a transient npm tarball 404. The subsequent retry did not reach that step because of the native Git collision. Neither a passing retry nor a tool version bump establishes the cause. I am testing concurrent native package publication against real filesystem operations; the exact failed-run path is still unknown.

Sign in to comment on this issue.