Skip to content

workshop health gate blocks recovery commands (remove/stop/list) when the storage pool is full #963

Open

Description

@james-garner-canonical

Environment: workshop 0.9.4 (rev 386, latest/stable), LXD 6.9 (rev 39858), ZFS pool workshop at /var/snap/lxd/common/lxd/disks/workshop.img.

Summary: When the workshop ZFS pool crosses the fullness threshold (observed at 92%, 2.4 GiB free), the health check rejects every subcommand — including the ones needed to recover:

error: system is not healthy: storage pool "workshop" is 92% full (2.4 GiB available);
free up space or expand the pool with `lxc storage volume set workshop size=<N>GiB`

workshop remove, workshop stop, and even read-only workshop list/info all abort with this before doing anything. The only way out (other than expanding the storage volume I guess) is dropping to raw lxc delete ... --project workshop.<uid> --force, which bypasses workshop's bookkeeping and risks orphaning shared clone-parent snapshots.

Expected: cleanup/recovery commands (remove, stop) and read-only commands (list, info) should be exempt from the fullness gate — or it should warn rather than hard-block for them — so a full pool is recoverable with workshop itself.

Actual: all subcommands hard-fail; recovery requires raw lxc.

Activity

  1. jonathan-conder commented on Jul 26, 2026

    @jonathan-conder
    Contributor

    It's counterintuitive but workshop remove, at least, can fail if there's not enough space. There's not much we can do about it without changing how LXD works.

    It's likely we could enable list and info, but we plan on making storage management a first class feature so we'll probably tackle it then.

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