when reserving ports, we use lock_file to lock the reservation file, but then use file_set_content which writes a new file and renames it, making the lock invalid and different processes waiting for the lock get inconsistent data
instead we use a ".flock" file for the lock, so that we don't lose the lock when writing the reservation file this should fix the problem that sometimes multiple vms get the same vnc/spice port Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- changes from v1: used a lockfile in /var/lock with .lck naming convention src/PVE/Tools.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm index 82d598e..69c8730 100644 --- a/src/PVE/Tools.pm +++ b/src/PVE/Tools.pm @@ -799,7 +799,7 @@ sub next_unused_port { return $newport; }; - my $p = lock_file($filename, 10, $code); + my $p = lock_file('/var/lock/pve-ports.lck', 10, $code); die $@ if $@; die "unable to find free port (${range_start}-${range_end})\n" if !$p; -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel