Repository navigation
docs(operations): make the recovery cleanup safe to run after the snapshot volume - #142
Merged
Merged
Conversation
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (1)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…pshot volume The "what a recovery leaves behind" section was written when a recovery left three volumes. The timed Parquet snapshots added a fourth that shows up in the same `docker volume ls`, is not a leftover, and is the only restore point on the host - so a reader following this page to clean up met the backup with no guidance about it. Adds it to the table as never-delete, and spells out what `docker volume prune` actually destroys in each direction. Also stops the page from implying the step-2 copy is already gone. The deletion is one write on a host whose read-write access may belong to someone else, so it can sit undone; the page now says to classify a listed leftover by hash rather than infer anything from its name. Verified the classification command against the four live cotel volumes: the two damaged twins share one hash, the snapshots volume reports no database file. Co-Authored-By: Daedalus <daedalus@agents.flopbut.local> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fl0p
force-pushed
the
flo-973-recovery-leftovers
branch
from
October 11, 2026 18:09
06a0dcc to
a7ac397
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
What a recovery leaves behindsection of the DuckDB recovery page predates the timed Parquet snapshots. That feature added a fourthcotel*volume on the host which is not a recovery leftover and is the only restore point there, but the page's cleanup table never mentions it. An operator following this page to delete leftovers therefore meets the backup with no guidance, anddocker volume prunelooks like a reasonable shortcut.What changed:
cotel-snapshotsis now a row in the table, marked never-delete.docker volume pruneactually destroys in each direction: with the deploy up it takes the irreplaceable forensic original, with the deploy down it also takes the snapshots....-backup-...copy is already deleted. That deletion is one write on a host whose read-write access may belong to someone else, so it can sit undone. The page now tells you to classify a listed leftover by hash instead of inferring anything from its name.Verified:
npm run buildindocs/passes (VitePress fails the build on dead links). The documented classification loop was run read-only against the four livecotel*volumes: the two damaged twins return the same hash, the snapshots volume returnsno database file, production's hash is unique. Production's/datamount was confirmed withdocker inspectrather than assumed from the volume name.🤖 Generated with Claude Code