Repository navigation
TODO §7 MED (all six): backup chains, prune, update --pkg-only, warm restart, clean lock, top — 1.1.69 - #260
Merged
Conversation
…lean lock, top (1.1.69) - replicate gets its own repl-<ts> snapshot family and bases an --auto-incremental send on the newest snapshot present on BOTH sides (remote listed over the same ssh hop); base lookup is `-d 1` and pinned to <dataset>@<prefix>; a failed replicate / template warm / run-time clone destroys its snapshot. - backup-prune keeps an incremental whose base is a kept incremental (transitive chain), not only a kept full. - pkg/keep-pkg (default true): create keeps pkg(8), /var/db/pkg and the /usr/sbin/pkg stub so `crate update --pkg-only` can work; update explains a missing pkg/database instead of ENOENT. - spec registry "<name> warm-base=<dataset>" entries; `crate restart` replays --warm-base/--name. - DirLock: run/create flock their jail/chroot directory; clean skips a held one and sweeps dead chroot-create-* directories. - top: WRITE/s column (writebps is a rate), CPU% from RCTL pcpu, 5 s baseline for the cputime fallback. - crate.5, README en/uk, runbook §4l, CHANGELOG, TODO, VERSION 1.1.69. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X6t6tzVypHye5bDGLxzmZK
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.
1.1.69 — TODO §7 MED, all six items in one release
Backup / replicate chain
crate backupandcrate replicateshared thebackup-*snapshot family and each--auto-incrementaltook the newest local one, so a file backup between two replications became the base of azfs send -ithe remote could not apply ("incremental source does not match"), and a replicate snapshot could become the base of a file backup no.zstreamholds.repl-<utc-time>; with--auto-incrementalthe base is the newest snapshot present on both sides (zfs list -d 1locally and over the same ssh hop,ZfsDatasetPure::pickLatestCommonSuffix); nothing in common → full stream with a warning.-d 1and pinned to<dataset>@<prefix>(it was-rwith an unpinned regex: a child dataset's snapshot could be chosen).template warmand the run-timebase_container/cow/--warm-baseclones destroy their snapshot whenzfs clonefails.backup-prune and chained incrementals
Only a kept FULL counted as a base, so with
--auto-incremental(F ← inc1 ← inc2) inc2 was always an "orphan" and--delete-orphansdeleted it. Now an incremental is kept when its base is kept, full or incremental (oldest-first transitive walk).crate update --pkg-onlycrate createdeleted pkg(8), emptied/var/db/pkgand trimmed/usr/sbin/pkg, so the 0.8.41 upgrade path ended in ENOENT on every crate that installs packages. Newpkg/keep-pkg(defaulttrue) keeps pkg, its database and the stub;falsegives the old smaller image.crate updatechecks the jail first and names what is missing and why.crate restartof a--warm-baserunThe spec registry gained
<name> warm-base=<dataset>entries (written bycrate run --warm-base … --name); restart replays--warm-base/--name.SpecRegistry::lookupreturns "" for them, so crated's control-socket start of a warm-base container stays unsupported (noted in TODO).crate cleanvs a run in progressNew
lib/dir_lock:crate runflock(2)s its jail directory (close-on-exec, held through teardown) andcrate createitschroot-create-*directory;cleanskips a held directory ("in use … — skipped") and now also sweeps deadchroot-create-*directories.crate topThe DISK column was RCTL
writebps, a rate, shown as usage. NowWRITE/srendered as12.5 MB/s; CPU% from RCTLpcpuwhen present, thecputimefallback holds its baseline for 5 s instead of quantising to 0/100/200 %.Docs / tests
crate.5 (
clean,restart,top,backup,backup-prune,replicate,update,pkg/keep-pkg), README en/uk, runbook §4l, CHANGELOG, TODO, VERSION / PORTVERSION 1.1.69.make test-uniton Linux: 1590/1590 passed (+7 cases: prune chain, pinned/common suffixes, repl prefix, warm-base registry entries, top pcpu/rates).make check-version,make check-kyuafile, mandoc lint (pre-existing style warnings only). zfs(8), flock on jail directories, pkg inside a jail and the ssh remote are runbook §4l.Generated by Claude Code