On Wed, Jul 23, 2025 at 04:57:57 +0000, P, Rajasekar via Users wrote:
Hello libvirt community,
I am seeking clarification on the behavior of `virsh snapshot-delete` when used with
external snapshots (created with the `--disk-only` option).
**Environment:**
- libvirt version: 10.5.0
Note that this was released almost a year ago.
- Kernel version: 5.14.0-503.22.1.el9_5.x86_64
- Disk image format: qcow2
- Host OS: RHEL 9.5
**Steps to reproduce:**
1. Create an external snapshot:
virsh snapshot-create-as --domain <vm> --name snap1 --disk-only
--atomic
2. Delete the snapshot:
virsh snapshot-delete <vm> --snapshotname snap1
**Observed behavior:**
- Changes from the overlay (snapshot) file are merged into the base image.
- The snapshot metadata is removed from libvirt.
- The snapshot file remains on disk (appears orphaned).
You mean that the original overlay images remained on disk? e.g.
/path/to/originalimage.snap1 ?
**Questions:**
- Is the observed automatic merge of the overlay file into the base image during
`snapshot-delete` the intended behavior for external snapshots in recent libvirt versions?
Or we need separate `blockcommit` step.
Yes it is intended, because deleting a snapshot is effectively meaning
"I don't want to return to this point any more" so the extra overlay
makes no sense.
- Should the snapshot file be deleted automatically, or is manual
cleanup required?
If you mean the overlay, then yes it should have been deleted.
- Is there any official documentation that clarifies this behavior
for external snapshots, as most documentation seems to focus on internal snapshots?
The semantics of external and internal snapshots are supposed to be
indentical. I don't think we document to a deep extent the actual
behaviour WRT to the disk files.