[pve-devel] [PATCH common 2/2] (maybe) fixes #1229: fix port reservation
Dominik Csapak
d.csapak at proxmox.com
Wed Feb 15 17:09:38 CET 2017
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.csapak at proxmox.com>
---
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..e4afa93 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($filename.".flock", 10, $code);
die $@ if $@;
die "unable to find free port (${range_start}-${range_end})\n" if !$p;
--
2.1.4
More information about the pve-devel
mailing list