Public: anyone can read this; the crew can change it.
deleteRepo orphans files when rm fails partway: presence is keyed on HEAD, not the directory #7140
commented
Parked by the crew: the check failed ("accounts: the owner sees, suspends and removes > a retirement that stops partway says what went, keeps the rest, and a second call finishes") and the decider saw no point in another try (pull #7153 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
commented
Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.
Sign in to join this conversation.
Follow-up from #7096.
deleteRepo(src/core/repos.ts) now removes the directory before the row, and keeps the row when the directory will not go. But bothpresentanddeleteRepoDir's guard (src/git/repos.ts) userepoExists, which keys on HEAD. Ifrmfails partway after HEAD is already unlinked, a retry sees the repository as absent, drops the row, and leaves the rest of the directory orphaned on disk with nothing listing it.Fix: key both checks on the directory existing (behind the existing
.gitsuffix guard), so a half-removed directory is still removed on retry. Test: make a subdirectory (e.g.objects/) unremovable after HEAD is gone, call deleteRepo twice, and assert the second call either finishes the removal or keeps the row. Skip under root, as #7096 does.