fix manifest cache - #4056
Conversation
Soffi AI SummaryThis PR fixes a subtle but impactful bug in the deployment operator's manifest caching layer. The cache previously stored a directory path for a fetched service manifest tarball and would return it as a cache hit as long as the entry was live and the SHA matched — but it never verified that the directory actually still existed on disk. If the directory was deleted or evicted (e.g., by an ephemeral container restart, node pressure, or external cleanup), the operator would return a stale/invalid path, leading to silent sync failures. The fix adds a filesystem existence check ( Commits
Updated: 2026-08-25 14:35 UTC |
Greptile SummaryThis PR makes manifest-cache reuse conditional on the cached directory still existing, evicting and refetching entries whose directories disappeared.
Confidence Score: 5/5The PR appears safe to merge because invalid cached directories are now evicted and refetched without changing valid-cache behavior. The changed path verifies directory availability before reuse, removes unusable entries, and falls through to the existing manifest-fetch flow; investigated concurrency and error paths did not reveal a new reachable failure.
|
| Filename | Overview |
|---|---|
| go/deployment-operator/pkg/manifests/cache.go | Adds missing-directory detection and eviction to prevent stale manifest-cache paths from being reused; no actionable changed-code defect was identified. |
Reviews (1): Last reviewed commit: "fix manifest cache" | Re-trigger Greptile
The agent reused a cached manifest path after rollout (or other changes) and directory was deleted. The agent couldn't fetch a new tarball because relayed on the cache. A later successful sync never cleared that error in Console |
|
there's probably an associated bug fix to make sure the errors properly clear then too |
Test Plan
Test environment: https://console.your-env.onplural.sh/
Checklist
Plural Flow: console