On Tue, Apr 22, 2025 at 18:51:18 +0800, jungleman759 wrote: > Hi > Thanks for following up, and sorry for the delay in getting back to you. > You're right to suspect the issue might be related to device changes. Here’s > how the crash can be triggered: > The VM initially uses a SATA controller, with a disk defined as: > xml > 复制编辑 > <controller type="scsi" index="0" model="lsilogic"></controller> <disk > type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source > file='/var/lib/libvirt/images/Testguest.qcow2'/> <target dev='sda' > bus='sata'/> </disk> > A snapshot is created at this point — which records the disk as sda. > Later, the VM is reconfigured to use a virtio controller, and the disk is now > assigned as vda. > When the VM is running and the snapshot is deleted, the snapshot code still > expects to find a disk named sda in the current VM definition. > Because of this mismatch, qemuDomainDiskByName() returns NULL, and the crash > occurs when the result is used without a null check. > This can easily happen during controller or disk bus reconfiguration between > snapshot and deletion. The patch adds sanity checks to ensure we don’t > dereference a null pointer in this situation. > Let me know if you’d like me to adjust the wording in the error messages or > add a reproducer for automated testing.
I think the error messages are good. They rely the fact that the disk was not found. How that happened is not as important.