retitle 635582 virt-manager hangs as non-root if not launched with --no-fork
thanks

Here is the bug report in redhat bug tracker, And it seems the bug get
fixed in fedora already:

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

I am putting the patch in the attachment.

In addition, a new upstream release seems available.

2011/7/27 Yao Wei <m...@lxde.org>:
> Package: virt-manager
> Version: 0.8.7-1
> Severity: important
>
> The virt-manager doesn't ask me password via ssh-askpass, but it only
> shows password dialog in the termianl when running virt-manager with
> --no-fork option.
>
> If virt-manager used without --no-fork, there is no password dialog at
> all and the whole virt-manager UI will hang, and eats CPU resources
> maybe caused by busy-waiting.
>
>
> -- System Information:
> Debian Release: wheezy/sid
>  APT prefers unstable
>  APT policy: (500, 'unstable'), (100, 'experimental')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 3.0.0-1-amd64 (SMP w/4 CPU cores)
> Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
>
> Versions of packages virt-manager depends on:
> ii  gconf2                        2.32.4-1   GNOME configuration database 
> syste
> ii  librsvg2-common               2.34.0-1   SAX-based renderer library for 
> SVG
> ii  python                        2.6.7-1    interactive high-level 
> object-orie
> ii  python-dbus                   0.84.0-2   simple interprocess messaging 
> syst
> ii  python-glade2                 2.24.0-2   GTK+ bindings: Glade support
> ii  python-gnome2                 2.28.1-3   Python bindings for the GNOME 
> desk
> ii  python-gtk-vnc                0.4.3-4    VNC viewer widget for GTK+2 
> (Pytho
> ii  python-gtk2                   2.24.0-2   Python bindings for the GTK+ 
> widge
> ii  python-ipy                    1:0.72-1   Python module for handling IPv4 
> an
> ii  python-libvirt                0.9.3-3    libvirt Python bindings
> ii  python-support                1.0.14     automated rebuilding support for 
> P
> ii  python-urlgrabber             3.9.1-4    A high-level cross-protocol 
> url-gr
> ii  python-vte                    1:0.28.1-2 Python bindings for the VTE 
> widget
> ii  virtinst                      0.500.6-1  Programs to create and clone 
> virtu
>
> Versions of packages virt-manager recommends:
> ii  gnome-icon-theme              3.0.0-4    GNOME Desktop icon theme
> ii  libvirt-bin                   0.9.3-3    programs for the libvirt library
>
> Versions of packages virt-manager suggests:
> ii  gnome-keyring                 3.0.3-2    GNOME keyring services (daemon 
> and
> pn  hal                           <none>     (no description available)
> ii  python-gnomekeyring           2.32.0-1   Python bindings for the GNOME 
> keyr
> ii  ssh-askpass-gnome [ssh-askpas 1:5.8p1-5  interactive X program to prompt 
> us
> ii  virt-viewer                   0.4.0-1    Displaying the graphical console 
> o
>
> -- no debconf information
>
>
>



-- 
Yao Wei
diff -rup virt-manager-0.8.7/src/virt-manager.py.in foobar/src/virt-manager.py.in
--- virt-manager-0.8.7/src/virt-manager.py.in	2011-03-24 16:39:28.000000000 -0400
+++ foobar/src/virt-manager.py.in	2011-03-31 11:34:02.389991998 -0400
@@ -393,9 +393,16 @@ def main():
     dbus.glib.threads_init()
     import dbus.service
 
-    # Specifically init config/gconf before the fork, so that pam
-    # doesn't think we closed the app, therefor robbing us of
-    # display access
+    # Now we've got basic environment up & running we can fork
+    if not options.nofork and not options.debug:
+        drop_tty()
+        drop_stdio()
+
+        # Ignore SIGHUP, otherwise a serial console closing drops the whole app
+        signal.signal(signal.SIGHUP, signal.SIG_IGN)
+
+    # Initing gconf before forking makes the app lockup on f15/rawhide...
+    # https://bugzilla.redhat.com/show_bug.cgi?id=692570
     import virtManager.config
     config = virtManager.config.vmmConfig(appname, appversion,
                                           gconf_dir, glade_dir,
@@ -408,14 +415,6 @@ def main():
     config.hv_packages = hv_packages
     config.libvirt_packages = libvirt_packages
 
-    # Now we've got basic environment up & running we can fork
-    if not options.nofork and not options.debug:
-        drop_tty()
-        drop_stdio()
-
-        # Ignore SIGHUP, otherwise a serial console closing drops the whole app
-        signal.signal(signal.SIGHUP, signal.SIG_IGN)
-
     from virtManager.engine import vmmEngine
 
     gtk.window_set_default_icon_from_file(icon_dir + "/" +

Reply via email to