Traceback when displaying offline contacts (probably linked to meta-contacts)
This problem appeared after I played with meta-contacts accross accounts. It is probably linked. I played a lot attaching contacts like in the example bellow:
Jabber account my_A (@jabber_server_A)
gateways
contact a (@jabber_server_A)
contact a (@icq)
contact a (@yahoo)
Jabber account my_B (@jabber_server_B)
contact a (@jabber_server_B)
I merged the 4 contacts in the same meta.
Now the global error messages displayed by Gajim:
Traceback (most recent call last):
File "/mnt/ext/src/gajim/src/roster_window.py", line 2820, in on_show_offline_contacts_menuitem_activate
self.draw_roster()
File "/mnt/ext/src/gajim/src/roster_window.py", line 929, in draw_roster
self.add_account_contacts(acct)
File "/mnt/ext/src/gajim/src/roster_window.py", line 934, in add_account_contacts
self.add_contact_to_roster(jid, account)
File "/mnt/ext/src/gajim/src/roster_window.py", line 325, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "/mnt/ext/src/gajim/src/roster_window.py", line 325, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "/mnt/ext/src/gajim/src/roster_window.py", line 325, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
[...] these above 2 lines quite a lot times and then
File "/mnt/ext/src/gajim/src/roster_window.py", line 320, in add_contact_to_roster
self.draw_avatar(jid, account)
File "/mnt/ext/src/gajim/src/roster_window.py", line 530, in draw_avatar
pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(jid)
File "/mnt/ext/src/gajim/src/gtkgui_helpers.py", line 510, in get_avatar_pixbuf_from_cache
is_fake_jid)
File "/mnt/ext/src/gajim/src/common/connection_handlers.py", line 825, in get_cached_vcard
card = common.xmpp.Node(node = c)
File "/mnt/ext/src/gajim/src/common/xmpp/simplexml.py", line 64, in __init__
node=NodeBuilder(node,self)
File "/mnt/ext/src/gajim/src/common/xmpp/simplexml.py", line 303, in __init__
self._parser.Parse(data,1)
File "/mnt/ext/src/gajim/src/common/xmpp/simplexml.py", line 338, in starttag
self._ptr.kids.append(Node(tag=tag,parent=self._ptr,attrs=attrs))
File "/mnt/ext/src/gajim/src/common/xmpp/simplexml.py", line 73, in __init__
if parent: self.parent = parent
File "/mnt/ext/src/gajim/src/common/xmpp/simplexml.py", line 246, in __getattr__
if attr=='T':
RuntimeError: maximum recursion depth exceeded in cmp
I have also the log of ./launc --debug &> mon_gros_boggue but I prefer not to disclose it for privacy. I have looked into it and found nothing that seemed interresting.
-- As a bonus I get also this at the end of mon_gros_boggue after having closed gajim
Traceback (most recent call last):
File "/mnt/ext/src/gajim/src/systray.py", line 319, in show_tooltip
position = widget.window.get_origin()
AttributeError: 'NoneType' object has no attribute 'get_origin'
}
--
After having closed gajim and reopened it it show the entire list, I presss "ctrl+o" to hide offline contacts and close Gajim: no traceback at all.
I reopen gajim; immediately I get a traceback:
{{{
Traceback (most recent call last):
File "/mnt/ext/src/gajim/src/common/xmpp/idlequeue.py", line 133, in process_events
obj.pollin()
File "/mnt/ext/src/gajim/src/common/xmpp/transports_nb.py", line 144, in pollin
self._do_receive()
File "/mnt/ext/src/gajim/src/common/xmpp/transports_nb.py", line 242, in _do_receive
self.on_receive(received)
File "/mnt/ext/src/gajim/src/common/xmpp/dispatcher_nb.py", line 349, in dispatch
handler['func'](session,stanza)
File "/mnt/ext/src/gajim/src/common/connection_handlers.py", line 1658, in _getRosterCB
self.connection.getRoster(self._on_roster_set)
File "/mnt/ext/src/gajim/src/common/xmpp/roster_nb.py", line 56, in getRoster
on_ready(self)
File "/mnt/ext/src/gajim/src/common/connection_handlers.py", line 1691, in _on_roster_set
self.dispatch('ROSTER', roster)
File "/mnt/ext/src/gajim/src/common/connection.py", line 105, in dispatch
self.put_event((event, data))
File "/mnt/ext/src/gajim/src/common/connection.py", line 101, in put_event
gajim.handlers[ev[0]](self.name, ev[1])
File "gajim.py", line 234, in handle_event_roster
self.roster.add_account_contacts(account)
File "/mnt/ext/src/gajim/src/roster_window.py", line 934, in add_account_contacts
self.add_contact_to_roster(jid, account)
File "/mnt/ext/src/gajim/src/roster_window.py", line 250, in add_contact_to_roster
big_brother_data = gajim.contacts.get_metacontacts_big_brother(
File "/mnt/ext/src/gajim/src/common/contacts.py", line 339, in get_metacontacts_big_brother
score = self._get_data_score(data)
File "/mnt/ext/src/gajim/src/common/contacts.py", line 328, in _get_data_score
score += contact.priority*10
AttributeError: 'NoneType' object has no attribute 'priority'
If you need more details: guiber att free dott fr
If I use Gajim 0.10 I have this traceback just after launching Gajim:
Traceback (most recent call last):
File "/usr/share/gajim/src/common/xmpp/idlequeue.py", line 133, in process_events
obj.pollin()
File "/usr/share/gajim/src/common/xmpp/transports_nb.py", line 143, in pollin
self._do_receive()
File "/usr/share/gajim/src/common/xmpp/transports_nb.py", line 245, in _do_receive
self.on_receive(received)
File "/usr/share/gajim/src/common/xmpp/dispatcher_nb.py", line 347, in dispatch
handler['func'](session,stanza)
File "/usr/share/gajim/src/common/connection_handlers.py", line 1624, in _getRosterCB
self.connection.getRoster(self._on_roster_set)
File "/usr/share/gajim/src/common/xmpp/roster_nb.py", line 56, in getRoster
on_ready(self)
File "/usr/share/gajim/src/common/connection_handlers.py", line 1657, in _on_roster_set
self.dispatch('ROSTER', roster)
File "/usr/share/gajim/src/common/connection.py", line 98, in dispatch
self.put_event((event, data))
File "/usr/share/gajim/src/common/connection.py", line 94, in put_event
gajim.handlers[ev[0]](self.name, ev[1])
File "gajim.py", line 203, in handle_event_roster
self.roster.add_account_contacts(account)
File "/usr/share/gajim/src/roster_window.py", line 928, in add_account_contacts
self.add_contact_to_roster(jid, account)
File "/usr/share/gajim/src/roster_window.py", line 262, in add_contact_to_roster
big_brother_data = gajim.contacts.get_metacontacts_big_brother(
File "/usr/share/gajim/src/common/contacts.py", line 339, in get_metacontacts_big_brother
score = self._get_data_score(data)
File "/usr/share/gajim/src/common/contacts.py", line 328, in _get_data_score
score += contact.priority*10
AttributeError: 'NoneType' object has no attribute 'priority'
(probably the same as above)
And when asking for offline contacts:
...
File "/usr/share/gajim/src/roster_window.py", line 336, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
[lot of times]
File "/usr/share/gajim/src/roster_window.py", line 336, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "/usr/share/gajim/src/roster_window.py", line 331, in add_contact_to_roster
self.draw_avatar(jid, account)
File "/usr/share/gajim/src/roster_window.py", line 535, in draw_avatar
pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(jid)
File "/usr/share/gajim/src/gtkgui_helpers.py", line 483, in get_avatar_pixbuf_from_cache
is_fake_jid)
File "/usr/share/gajim/src/common/connection_handlers.py", line 827, in get_cached_vcard
card = common.xmpp.Node(node = c)
File "/usr/share/gajim/src/common/xmpp/simplexml.py", line 64, in __init__
node=NodeBuilder(node,self)
File "/usr/share/gajim/src/common/xmpp/simplexml.py", line 303, in __init__
self._parser.Parse(data,1)
File "/usr/share/gajim/src/common/xmpp/simplexml.py", line 338, in starttag
self._ptr.kids.append(Node(tag=tag,parent=self._ptr,attrs=attrs))
File "/usr/share/gajim/src/common/xmpp/simplexml.py", line 73, in __init__
if parent: self.parent = parent
File "/usr/share/gajim/src/common/xmpp/simplexml.py", line 246, in __getattr__
if attr=='T':
RuntimeError: maximum recursion depth exceeded in cmp
When disconnecting:
Traceback (most recent call last):
File "/usr/share/gajim/src/common/xmpp/idlequeue.py", line 137, in process_events
obj.pollout()
File "/usr/share/gajim/src/common/xmpp/transports_nb.py", line 134, in pollout
return self._do_send()
File "/usr/share/gajim/src/common/xmpp/transports_nb.py", line 268, in _do_send
self.disconnect()
File "/usr/share/gajim/src/common/xmpp/transports_nb.py", line 157, in disconnect
self._owner.disconnected()
File "/usr/share/gajim/src/common/xmpp/client_nb.py", line 79, in disconnected
i()
File "/usr/share/gajim/src/common/connection.py", line 134, in _disconnectedReconnCB
self.dispatch('STATUS', 'offline')
File "/usr/share/gajim/src/common/connection.py", line 98, in dispatch
self.put_event((event, data))
File "/usr/share/gajim/src/common/connection.py", line 94, in put_event
gajim.handlers[ev[0]](self.name, ev[1])
File "gajim.py", line 309, in handle_event_status
self.roster.on_status_changed(account, status)
File "/usr/share/gajim/src/roster_window.py", line 2081, in on_status_changed
self.chg_contact_status(contact, 'offline', '', account)
File "/usr/share/gajim/src/roster_window.py", line 1007, in chg_contact_status
self.add_contact_to_roster(contact.jid, account)
File "/usr/share/gajim/src/roster_window.py", line 336, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "/usr/share/gajim/src/roster_window.py", line 281, in add_contact_to_roster
self.draw_contact(big_brother_jid, big_brother_account)
File "/usr/share/gajim/src/roster_window.py", line 490, in draw_contact
child_icon_name = helpers.get_icon_name_to_show(child_contact, account)
File "/usr/share/gajim/src/common/helpers.py", line 498, in get_icon_name_to_show
if account and gajim.awaiting_events[account].has_key(contact.jid):
AttributeError: 'NoneType' object has no attribute 'jid'
When closing: nothing special
Good hunt, Guillaume
-- I don't have so many contacts so I could also remove my gajim profile, take contacts out of the groups and restart groupping contacts together. I'll do like this if their is no hope.