Summary: | Kopete crashes after the first status cycle online->offline->online (PropertyContainer::property, setProperty, JabberAccount::slotContactUpdated) | ||
---|---|---|---|
Product: | [Unmaintained] kopete | Reporter: | Damir Islamov <damir> |
Component: | Jabber Plugin | Assignee: | Kopete Developers <kopete-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | brian, v.for.vandal |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Damir Islamov
2009-08-18 09:33:03 UTC
Additional info: After the step > 4. set the status online "Fatal error in the Jabber contact pool..." exception occures from here .../kopete/protocols/jabber/jabbercontactpool.cpp: JabberContact *JabberContactPool::addContact ( const XMPP::RosterItem &contact, Kopete::MetaContact *metaContact, bool dirty ) { // see if the contact already exists JabberContactPoolItem *mContactItem = findPoolItem ( contact ); if ( mContactItem) { kDebug(JABBER_DEBUG_GLOBAL) << "Updating existing contact " << contact.jid().full() << " - " << mContactItem->contact(); // It exists, update it. mContactItem->contact()->updateContact ( contact ); mContactItem->setDirty ( dirty ); JabberContact *retval = dynamic_cast<JabberContact *>(mContactItem->contact ()); if ( !retval ) { KMessageBox::error ( Kopete::UI::Global::mainWidget (), "Fatal error in the Jabber contact pool. Please restart Kopete and submit a debug log " "of your session to http://bugs.kde.org.", "Fatal Jabber Error" ); } return retval; } i.e. retval=NULL, which leads to Thread 1 (Thread 0xb5795700 (LWP 4300)): [KCrash Handler] #6 Kopete::PropertyContainer::hasProperty (this=0x0, key=...) at ../../../kopete/libkopete/kopetepropertycontainer.cpp:108 #7 0xb7fd6e1f in Kopete::PropertyContainer::property (this=0x0, key=...) at ../../../kopete/libkopete/kopetepropertycontainer.cpp:113 #8 0xb7fd72a2 in Kopete::PropertyContainer::setProperty (this=0x0, tmpl=..., value=...) at ../../../kopete/libkopete/kopetepropertycontainer.cpp:145 #9 0xb322b633 in JabberAccount::slotContactUpdated (this=0x87c8478, item=...) at ../../../../kopete/protocols/jabber/jabberaccount.cpp:1339 Thanks for the information! Some additional questions: - Do you have multiple Jabber accounts or just one? - Does one (or more) of your Jabber accounts have a fairly large contact list? If so, how big would you estimate it is? 1. I have 4 jabber accounts. 2. Some of accounts have about 20 items in contact list. Other ones have less than 10 items. 3. Several items from contact lists of different accounts are merged into metacontacts. *** Bug 208069 has been marked as a duplicate of this bug. *** Also experiencing this bug. I have 2 identities. One with 1 jabber account and one with 2 jabber accounts. For me the crash occurs at arbitrary times, not triggered by me. SVN commit 1066641 by rjarosz: Don't crash if user has "contact" in contact list with the same jid as group chat. TODO: We should remove the invalid user with JT_Roster task (wait for ack) and then join the group chat. BUG: 204243 M +2 -0 jabberaccount.cpp M +6 -4 jabbercontactpool.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1066641 |