Bug 1024569 - virt-manager fails to start on rawhide (pygobject3 regression)
Summary: virt-manager fails to start on rawhide (pygobject3 regression)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: virt-manager
Version: rawhide
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
Assignee: Giuseppe Scrivano
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-10-30 00:52 UTC by Dave Allan
Modified: 2013-12-02 19:36 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-12-02 19:36:53 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
python traceback (1.23 KB, text/plain)
2013-10-30 00:52 UTC, Dave Allan
no flags Details

Description Dave Allan 2013-10-30 00:52:26 UTC
Created attachment 817212 [details]
python traceback

Description of problem:
Starting virt-manager as root silently fails.  Using --no-fork shows the attached traceback.

Version-Release number of selected component (if applicable):
virt-manager-0.10.0-4.git79196cdf.fc21.noarch

How reproducible:
100%

Steps to Reproduce:
1. become root
2. execute virt-manager

Actual results:
silent failure (or traceback if --no-fork is specified_

Additional info:
See attachment for traceback

Comment 1 Dave Allan 2013-10-30 00:58:22 UTC
Aargh, it seems like this isn't limited to root; hopefully this is PBKAC, but virt-manager is non-functional on my rawhide system.  I can provide access to the VM.

Comment 2 Giuseppe Scrivano 2013-10-30 16:01:01 UTC
The exception is raised by gtk.TreeViewColumn.set_cell_data_func when the callback function is set to NULL, though I am not sure if it is an error there since userdata is also NULL so the error doesn't make sense.  On the other hand, if I understand correctly the code, setting the callback to NULL is a NOP so we can just avoid this in virt-manager by skipping the call to set_cell_data_func when the callback function is NULL.

Patch proposed upstream: https://www.redhat.com/archives/virt-tools-list/2013-October/msg00166.html

Comment 3 Giuseppe Scrivano 2013-11-04 15:33:14 UTC
fixed in pygobject upstream:

https://bugzilla.gnome.org/show_bug.cgi?id=711173

Comment 4 Cole Robinson 2013-11-04 22:22:18 UTC
Here's the commit:

commit 79aea2655db11bc9d2c0ad75c87862b2b66da594
Author: Simon Feltman <sfeltman.org>
Date:   Mon Nov 4 03:29:57 2013 -0800

    Remove overzealous argument checking for callback userdata

It just missed pygobject 3.11.1

Comment 5 Peter Trenholme 2013-11-10 01:18:35 UTC
I think this is the same error, but this extract from the log file might be useful:

[Sat, 09 Nov 2013 17:01:32 virt-manager 30088] DEBUG (cli:217) Launched with command line: /usr/share/virt-manager/virt-manager
[Sat, 09 Nov 2013 17:01:32 virt-manager 30088] DEBUG (virt-manager:180) virt-manager version: 0.10.0
[Sat, 09 Nov 2013 17:01:32 virt-manager 30088] DEBUG (virt-manager:181) virtManager import: <module 'virtManager' from '/usr/share/virt-manager/virtManager/__init__.pyc'>
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (virt-manager:226) GTK version: 3.11.0
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] ERROR (importer:51) Could not find any typelib for AppIndicator3
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (engine:439) libguestfs inspection support: True
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (inspection:82) waiting
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (systray:163) Showing systray: False
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (engine:231) About to connect to uris ['qemu:///system']
[Sat, 09 Nov 2013 17:01:32 virt-manager 30089] DEBUG (cli:212) Uncaught exception:
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/engine.py", line 133, in _activate
    self.show_manager()
  File "/usr/share/virt-manager/virtManager/engine.py", line 862, in show_manager
    self._do_show_manager(None)
  File "/usr/share/virt-manager/virtManager/engine.py", line 806, in _do_show_manager
    manager = self.get_manager()
  File "/usr/share/virt-manager/virtManager/engine.py", line 767, in get_manager
    obj = vmmManager()
  File "/usr/share/virt-manager/virtManager/manager.py", line 173, in __init__
    self.init_stats()
  File "/usr/share/virt-manager/virtManager/manager.py", line 276, in init_stats
    self.toggle_host_cpu_usage_visible_widget()
  File "/usr/share/virt-manager/virtManager/manager.py", line 1026, in toggle_host_cpu_usage_visible_widget
    self.host_cpu_usage_img, "menu_view_stats_host_cpu")
  File "/usr/share/virt-manager/virtManager/manager.py", line 1003, in _toggle_graph_helper
    col.set_cell_data_func(img, datafunc, None)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1320, in set_cell_data_func
    super(TreeViewColumn, self).set_cell_data_func(cell_renderer, func, func_data)
TypeError: When passing None for a callback userdata must also be None

Comment 6 Cole Robinson 2013-11-10 17:00:25 UTC
Fixed in virt-manager-0.10.0-5.git1ffcc0cc.fc21

Comment 7 Kevin Fenzi 2013-11-10 17:39:35 UTC
This does indeed fix that traceback, unfortunately I get another one now: 

[Sun, 10 Nov 2013 10:37:51 virt-manager 1365] DEBUG (cli:212) Uncaught exception:
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/manager.py", line 710, in add_conn
    row = self._append_conn(vmlist.get_model(), conn)
  File "/usr/share/virt-manager/virtManager/manager.py", line 691, in _append_conn
    _iter = model.append(None, row)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1194, in append
    return self._do_insert(parent, -1, row)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1187, in _do_insert
    treeiter = self.insert_with_values(parent, position, columns, row)
AttributeError: 'TreeStore' object has no attribute 'insert_with_values'
(for each connection I have defined)

and it starts, but I can't connect to anything, and the window is blank. 

Shall I open a new bug on that?

Comment 8 Cole Robinson 2013-11-10 20:28:37 UTC
Thanks for checking Kevin, we can just reuse this report. There doesn't seem to be any simple workaround here. I've filed an upstream gnome report:

https://bugzilla.gnome.org/show_bug.cgi?id=711797

Comment 9 Zdenek Kabelac 2013-11-15 14:11:06 UTC
For me - I'd to  downgrade  gtk3

As for my today's rawhide virt-manager works with:

gtk3-devel-3.10.3-1.fc20.x86_64
gtk3-3.10.3-1.fc20.i686
gtk3-debuginfo-3.11.0-1.fc21.x86_64
gtk3-3.10.3-1.fc20.x86_64

virt-manager-0.10.0-5.git1ffcc0cc.fc21.noarch
virt-manager-common-0.10.0-5.git1ffcc0cc.fc21.noarch

pygobject3-base-3.11.1-1.fc21.x86_64
pygobject3-3.11.1-1.fc21.x86_64

Comment 10 Kevin Fenzi 2013-11-26 23:44:35 UTC
Any news here? Having virt-manager broken for almost a month is pretty sad. ;(

Comment 11 Dave Allan 2013-11-27 03:23:42 UTC
Kevin, on my rawhide system virt-manager was fixed on 2013-11-10 when Cole originally closed this BZ and has been working fine afaik ever since.  I just updated rawhide and confirmed that virt-manager starts ok.  Cole, are you able to reproduce what Kevin is seeing?

Comment 12 Kevin Fenzi 2013-11-27 03:39:53 UTC
To be clear, it starts fine, I just can't see/use any of my connections...

It gives: 

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/manager.py", line 710, in add_conn
    row = self._append_conn(vmlist.get_model(), conn)
  File "/usr/share/virt-manager/virtManager/manager.py", line 691, in _append_conn
    _iter = model.append(None, row)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1194, in append
    return self._do_insert(parent, -1, row)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1187, in _do_insert
    treeiter = self.insert_with_values(parent, position, columns, row)
AttributeError: 'TreeStore' object has no attribute 'insert_with_values'

for every connection it should be showing.

Comment 13 Zdenek Kabelac 2013-11-27 07:50:17 UTC
(In reply to Kevin Fenzi from comment #12)
> To be clear, it starts fine, I just can't see/use any of my connections...
> 
> It gives: 
> 
> Traceback (most recent call last):
>   File "/usr/share/virt-manager/virtManager/manager.py", line 710, in
> add_conn
>     row = self._append_conn(vmlist.get_model(), conn)
>   File "/usr/share/virt-manager/virtManager/manager.py", line 691, in
> _append_conn
>     _iter = model.append(None, row)
>   File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1194,
> in append
>     return self._do_insert(parent, -1, row)
>   File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1187,
> in _do_insert
>     treeiter = self.insert_with_values(parent, position, columns, row)
> AttributeError: 'TreeStore' object has no attribute 'insert_with_values'
> 
> for every connection it should be showing.

That's why I'm keeping downgraded my gtk3 libs...

Comment 14 Dave Allan 2013-11-27 15:53:20 UTC
(In reply to Kevin Fenzi from comment #12)
> To be clear, it starts fine, I just can't see/use any of my connections...

My bad, sorry; I'm seeing that as well.  Sorry, I saw that the first bug was resolved and mistakenly assumed everything was working.  Giuseppe is going to follow up with the gtk folks.

Comment 15 Giuseppe Scrivano 2013-11-28 13:02:50 UTC
I've filed a pygobject bug:

https://bugzilla.gnome.org/show_bug.cgi?id=719488

The error seems to be in the Python GTK+ bindings.  Even the example fails with the same error:

https://developer.gnome.org/gnome-devel-demos/3.5/treeview_treestore.py.html.en

Comment 16 Simon Feltman 2013-12-01 23:36:10 UTC
As noted in:
https://bugzilla.gnome.org/show_bug.cgi?id=719488

This is caused by an out of date GObject-Introspection not picking up the new
syntax for "rename-to" used in GTK+. Updating GI should fix the problem.

See also:
https://bugzilla.gnome.org/show_bug.cgi?id=711341
https://bugzilla.gnome.org/show_bug.cgi?id=711797
https://bugzilla.gnome.org/show_bug.cgi?id=713044

Comment 17 Cole Robinson 2013-12-01 23:43:59 UTC
Thanks for clarifying Simon.

gobject-introspection 1.39 is in rawhide now, but the latest gtk3 build failed so things are still busted AFAICT:

http://koji.fedoraproject.org/koji/taskinfo?taskID=6239961

I'll follow up tomorrow with the desktop guys to try and get things fixed.

Comment 18 Cole Robinson 2013-12-02 19:25:40 UTC
I just rebuilt pygobject3, so with that and latest gtk3 things should be working. I'm still hitting some weirdness but it might be ssh -X related so I'm doing some more testing.

Comment 19 Kevin Fenzi 2013-12-02 19:33:51 UTC
I can confirm it works here with the latest pygobject3 and gtk3 from koji. ;)

Comment 20 Cole Robinson 2013-12-02 19:36:53 UTC
Thanks Kevin, closing then.

I had to use koji latest-build and koji download-build to get latest bits, so for others listening in a simple 'yum update' probably won't fix things yet. Wait a day or so


Note You need to log in before you can comment on or make changes to this bug.