local-path provisioner is stuck in a VolumeFailedDelete loop on three orphaned PVs, 2,014 events each #863
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#863
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found during a fleet health sweep on 2026-08-18.
Observed
The local-path provisioner on kai-server is in a permanent retry loop against three PersistentVolumes it cannot delete:
Each with the same message shape:
Source is
rancher.io/local-path_local-path-provisioner-774c6665dc-s8m8t.Reading
The provisioner spawns a helper pod to remove the on-disk directory, and the helper pod is not there when it looks. The PVs stay in
ReleasedorFailedand it retries forever. 2,014 events each and climbing.This is plausibly connected to
kube-system/local-path-provisionersitting at 39 restarts, though that is over a 492d lifetime, so the rate is low and the link is inference rather than established.Two costs: standing event noise that buries real warnings, and backing directories under the local-path root that are never reclaimed, which matters on a node that has had disk-pressure history.
Suggested
Identify the backing directories for the three PVs, confirm nothing needs the data, remove the directories on the node, then clear the PV finalizers so the objects can go. Worth checking whether the helper-pod path is broken generally, since if it is, the next PVC deletion adds a fourth.
Cleared.
VolumeFailedDeletehas stopped entirely.What they were
Three PVs, Released for 82 days,
reclaim=Delete, finalizerkubernetes.io/pv-protection:The event count had climbed to 2,624 each by the time I looked, up from the 2,014 in the original title, so this was still actively accumulating.
Verified safe before deleting
data-forgejo-runner-0and-1still exist and are Bound, but to different PVs (pvc-435457c7,pvc-eb193ec4, both 73d). The stuck pair are the older volumes from before the runner StatefulSet was recreated. Nothing references them.openclawnamespace does not exist at all./var/lib/rancher/k3s/storageis0700 rootand atest -daskaireturns a false negative. The scan also reports zero unattributed paths.So this was pure API-object cleanup. No data at risk and no disk to reclaim: the provisioner had been retrying deletes of directories that were already gone, which is why it produced only noise.
What was done
Patched
persistentVolumeReclaimPolicytoRetainfirst, so the provisioner stopped attempting the delete that could never succeed, then deleted the three PV objects.After
Roughly 7,900 warning events per cycle stop being generated. Closing.