On 2/7/22 06:38, Ján Tomko wrote:
On a Friday in 2022, Jim Fehlig wrote:
The libxl driver reconnects to all running VMs when libvirtd is restarted,
but it failed to mark auto-allocated graphics ports as set in the port
allocator. If many VMs are running that use port auto-allocation and
libvirtd is restarted, the port allocator is likely to hand out a port
already in use when a new VM is created that uses auto-allocation. VM
creation will fail due to the port clash.
In the QEMU driver, we also mark user-specified ports in the allocator,
to let it now it should skip them. But I suppose people worried about
clashes do not use those.
On one hand I dislike the allocator keeping track of stuff it didn't allocated,
but on the other it is a resiliency improvement to consider.
When reconnecting to running VMs after a libvirtd restart, let the port
allocator know about previously allocated ports.
Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx>
---
Like 31e937fb3b, another item unaccounted for when reconnecting to VMs
after a daemon restart.
src/libxl/libxl_driver.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx>
However, I did not find a virPortAllocatorRelease call for the spice
port in src/libxl (for VNC it's done in libxlDomainCleanup )
Thanks a lot for checking and bringing it to my attention! I've sent a patch to
improve the port release logic
https://listman.redhat.com/archives/libvir-list/2022-February/msg00252.html
Regards,
Jim