canonical / canonical/multipass

[snapshot] Raw error on snapshot deletion attempt on a running VM

Open
#4,824 7 comments 0 reactions 1 assignee Claimed by @noor-malaika View on GitHub
good first issue low hanging fruit
Dominant language
C++
Stars
9.2k
Forks
829
Avg merge
3d 2h
Merged PRs (30d)
45

Description

**Describe the bug**
When deleting a snapshot from a running VM, Multipass will attempt the process without checking whether the VM is in a state that allows the process.
```
└─[λ] multipass delete a.snapshot1 --purge
delete failed: Cannot list snapshots from the image: qemu-img failed (Process returned exit code: 1) with output:
qemu-img: Could not open '/var/snap/multipass/common/data/multipassd/vault/instances/a/ubuntu-24.04-server-cloudimg-amd64.img': Failed to get shared "write" lock
Is another process using the image [/var/snap/multipass/common/data/multipassd/vault/instances/a/ubuntu-24.04-server-cloudimg-amd64.img]?

└─[2] multipass delete a.snapshot1
Snapshots can only be purged (after deletion, they cannot be recovered). Are you sure you want to continue? (Yes/no): Yes
delete failed: Cannot list snapshots from the image: qemu-img failed (Process returned exit code: 1) with output:
qemu-img: Could not open '/var/snap/multipass/common/data/multipassd/vault/instances/a/ubuntu-24.04-server-cloudimg-amd64.img': Failed to get shared "write" lock
Is another process using the image [/var/snap/multipass/common/data/multipassd/vault/instances/a/ubuntu-24.04-server-cloudimg-amd64.img]?
```

**To Reproduce**
How, and what happened?
1. `multipass launch -n a`
2. `multipass stop a`
3. `multipass snapshot a`
4. `multipass start a`
5. `multipass delete a.snapshot1 (--purge)`

**Expected behavior**
Multipass should return an error to the user telling them that the VM must be stopped for the process.

**Additional info**
- OS: Ubuntu 24.04 (authd)
- CPU architecture or model: amd64
- `multipass version`: 1.17.0-dev

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.