[pve-devel] Consistency in volume deletion in process of concurrent VM deletion
Andrei Perepiolkin
andrei.perepiolkin at open-e.com
Tue Oct 21 17:33:27 CEST 2025
Hi Proxmox Community,
There might be a potential consistency problem with Proxmox vm deletion.
If Proxmox receives multiple concurrent VM deletion requests, where each
VM has multiple disks located on shared storage.
The deletion process may fail or hang when attempting to acquire the
storage
lock(https://github.com/proxmox/pve-storage/blob/master/src/PVE/Storage.pm#L1196C1-L1209C7).
...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
cfs-lock 'storage-jdss-Pool-2' error: got lock request timeout
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
cfs-lock 'storage-jdss-Pool-2' error: got lock request timeout
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
trying to acquire cfs lock 'storage-jdss-Pool-2' ...
cfs-lock 'storage-jdss-Pool-2' error: got lock request timeout
...
Eventually, the VM configuration files in /etc/pve are removed, but some
VM disks may remain.
Additionally, the Web UI shows all deletions as successful, even though
some disks were not deleted.
In my opinion, a VM should either be deleted completely—including all
dependent resources—or the deletion should fail, leaving the VM
configuration file with an updated state.
Im reproducing this by:
for i in `seq 401 420` ; do qm clone 104 $i --name "win-$i" --full
--storage jdss-Pool-2 ; done;
for i in `seq 401 410` ; do qm destroy $i
--destroy-unreferenced-disks 1 --purge 1 & done ;
Have to notice that ssh session that I use to conduct 'qm destroy'
command get terminated by Proxmox.
Ive duplicated as a bug at:
https://bugzilla.proxmox.com/show_bug.cgi?id=6957
Is this a bug and will it be addressed in near future?
Best regards,
Andrei Perepiolkin
More information about the pve-devel
mailing list