Prune first deletes chunks and then proceeds to delete snapshots. If it’s interrupted after chunks got deleted but before snapshots, those ghost snapshots that refer to missing chunks remain in the storage and will be failing checks.
The proposed solution was to implement two step snapshot deletion process but was never implemented.
Essentially this means your datastore is still consistent, no data loss occurred; the only broken parts are those that should have been deleted anyway, and it’s fairly easy to clean up.
- run
check -all -persist
- From the log collect IDs of revisions that are reported bad and delete them manually from the storage. They will be under the snapshots folder
- Then to cleanup remaining orphaned chunks run
prune -all -exhaustive
.
And that’s it.