Skip to content

docs(nas): the snapshot task is non-recursive because of what erebor/apps/home is (#484) - #561

Merged
Gerrrt merged 1 commit into
mainfrom
gerrrt/nas-snapshot-child-dataset-reasoning
Sep 20, 2026
Merged

Gerrrt merged 1 commit into
mainfrom
gerrrt/nas-snapshot-child-dataset-reasoning

Conversation

@Gerrrt

@Gerrrt Gerrrt commented Sep 20, 2026

Copy link
Copy Markdown
Owner

What changed

Two sentences in docs/runbooks/build-the-nas.md. §4.1's snapshot-task table said Recursive is off because "nothing beneath it is a dataset"; §6.2 step 1 said giving frodo a home under erebor/apps means "nothing new is created for it". Both are false since 2026-09-19 21:53, when TrueNAS made erebor/apps/home a child dataset for that user. Both now say what the child is, what it holds, and why the setting is still right.

Why

Read from smaug while diagnosing the first make backup-nas failure: erebor/apps/home holds frodo's shell files and authorized key, nothing Jellyfin writes; jellyfin/config is a directory on erebor/apps itself. A non-recursive snapshot therefore freezes everything scripts/backup-nas.sh reads, and a recursive one would buy nothing — a child's snapshot is not visible in the parent's .zfs/snapshot/. The runbook's setting was right for a reason it did not state, and a reader checking its stated reason against zfs list would have concluded the task was misconfigured.

The reason the pull failed is separate and the operator's: the periodic task has never produced a snapshot. Refs #484.

Blast radius

None. A runbook. Nothing on smaug is changed, and the recommended setting does not change.

  • No change to network segmentation or firewall rules
  • No new port published to a VLAN that could not already reach the service
  • No credential added outside secrets/*.sops.yaml

Verification

  • make lint and scripts/check_docs.py pass
  • Deployed to the lab and confirmed working — not applicable, documentation only
  • Docs updated

🤖 Generated with Claude Code

…or/apps/home is, not because it does not exist (#484)

§4.1 said Recursive is off because nothing beneath erebor/apps is a dataset.
Since 2026-09-19 21:53 one is: erebor/apps/home, which TrueNAS made a child
dataset when §6.2 step 1 gave frodo a home directory there — and that step
said "nothing new is created for it". Read from smaug: the child holds
frodo's shell files and authorized key and nothing Jellyfin writes;
jellyfin/config is a directory on erebor/apps itself, so a non-recursive
snapshot freezes everything scripts/backup-nas.sh reads. The setting is
right; both sentences were wrong, and now say why it is right — a recursive
task would only be snapshotting an authorized key, and a child's snapshot
is not visible in the parent's .zfs/snapshot/ anyway.

Nothing on smaug is changed. Found while diagnosing why the first pull found
no snapshots: the task itself has never run, which the operator owns.

Refs #484.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Gerrrt
Gerrrt merged commit afafec5 into main Sep 20, 2026
3 checks passed
@Gerrrt
Gerrrt deleted the gerrrt/nas-snapshot-child-dataset-reasoning branch September 20, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant