Skip to content

cli: --dump/--load deletes state it cannot represent, and doesn't round-trip #283

Description

@myme

--load deletes every server-side key that has no file in the local tree. Defensible for pure config, but the tree can't represent everything, so a load silently destroys live state.

Concrete: one --load on a plot deleted 56 keys — the value and about of all 11 vars. The vars survived as empty shells, so the plot still rendered but every number was blank. The only signal was 56 deleted in the summary. The same mechanism sent four unintended emails through a mail's /status (gaia#4289).

--dump doesn't round-trip either:

  • config/env on a job is never emitted, so dump→load deletes every env var, including an auto-created novem_token.
  • Zero-byte files are skipped, so tags/ markers never come back and dump→load drops every tag.

Net effect: the pair isn't usable as backup/restore, and --load isn't safe to run unattended against any resource a job also writes to.

Repro:

novem -p my-plot --dump /tmp/p
novem -p my-plot --load /tmp/p   # deletes vars and tags

Suggestion: make deletion opt-in behind --prune, and either emit config/env and empty markers from --dump or document them as out of scope.

Found on 0.6.1, still present on 0.6.3.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions