Bug 766796

Summary: GUI freezes while opening connection to remote machine
Product: [Fedora] Fedora Reporter: David Kovalsky <dkovalsk>
Component: virt-managerAssignee: Cole Robinson <crobinso>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 16CC: benl, berrange, cra, crobinso, dougsland, dpierce, hbrock, jforbes, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-06 21:47:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description David Kovalsky 2011-12-12 16:12:07 UTC
I have ~5 connections configured, all either xen+ssh or qemu+ssh. Some of the machines are remote (further over WAN) and it takes a while for them to respond. During this time, the GUI is frozen and unusable.

That means that if one of the machines is down, I can't use the GUI in virt-manager until the connection times out. This is especially uncomfortable if I have auto-connect configured.

I've also noticed (though not sure if this is relevant) that if one of the machines that's configured as auto-connect stop responding, the whole GUI freezes, virt-managers starts easing 100% of the CPU and the only way out is to kill it. 

It would be nice if connections were done is a background thread, not tied to GUI / presentation layer. 



virt-manager-0.9.0-7.fc16.noarch

Comment 1 Cole Robinson 2012-02-08 19:28:21 UTC
There are a few pieces to this.

The low hanging fruit was that we were doing some media polling outside of the tick thread, meaning the main UI loop could inadvertently hit the busted connection and lock everything up. This would hit you even if you were just monitoring connections from the main window. This is fixed upstream and should fix the worst problems:

http://git.fedorahosted.org/git?p=virt-manager.git;a=commitdiff;h=13dd371e4840b8dca70508477cfc6820ac5d9a71

But then again, if you are connected to the console or details view for a VM on a remote connection and that connection goes down, you are screwed, since when actively viewing a VM's window we are doing lot's of libvirt operations in the main UI thread. This would be a much harder issue to fix and TBH the complexity might not even be worth fixing.

Another issue is that connection polling is serialized, so if one connection is blocked, none of the others get updated. We should probably fire off a thread for each connection here. This might also give us an opportunity to detect a connection has stalled and inform user (or just auto drop it). I've filed a bug for that piece:

https://bugzilla.redhat.com/show_bug.cgi?id=788686

Moving to POST since the worst issue has been resolved upstream

Comment 2 Cole Robinson 2012-06-06 21:47:40 UTC
This was fixed in an update a while ago.