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(a)suse.com>
> ---
>
> 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(a)redhat.com>
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