[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