Another bug in add_contact_to_roster: 'infinite recursion'
Happens here every few minutes, taking 100% cpu for a minute every time. Debian Sid, Gajim 0.11.2 from repository.
Traceback (most recent call last):
File "common/xmpp/idlequeue.py", line 132, in process_events
obj.pollin()
File "common/xmpp/transports_nb.py", line 153, in pollin
self._do_receive()
File "common/xmpp/transports_nb.py", line 255, in _do_receive
self.on_receive(received)
File "common/xmpp/dispatcher_nb.py", line 353, in dispatch
handler['func'](session,stanza)
File "common/connection_handlers.py", line 1795, in _presenceCB
keyID, timestamp, contact_nickname))
File "common/connection.py", line 109, in dispatch
self.put_event((event, data))
File "common/connection.py", line 105, in put_event
gajim.handlers[ev[0]](self.name, ev[1])
File "gajim.py", line 590, in handle_event_notify
account)
File "roster_window.py", line 1217, in chg_contact_status
self.add_contact_to_roster(contact.jid, account)
File "roster_window.py", line 385, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "roster_window.py", line 385, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
[...]
File "roster_window.py", line 385, in add_contact_to_roster
self.add_contact_to_roster(data['jid'], data['account'])
File "roster_window.py", line 342, in add_contact_to_roster
self.remove_contact(c, data['account'])
File "roster_window.py", line 528, in remove_contact
self.draw_group(group, account)
File "roster_window.py", line 398, in draw_group
accounts = accounts, groups = [group])
File "common/contacts.py", line 268, in get_nb_online_total_contacts
our_jid = common.gajim.get_jid_from_account(account)
File "common/gajim.py", line 289, in get_jid_from_account
name = config.get_per('accounts', account_name, 'name')
File "common/config.py", line 536, in get_per
if not dict.has_key(key):
RuntimeError: maximum recursion depth exceeded in cmp