[PATCH] libxl: Set auto-allocated graphics ports to used on reconnect

Jim Fehlig jfehlig at suse.com
Mon Feb 7 21:16:16 UTC 2022


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 at 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 at 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





More information about the libvir-list mailing list