Bug 151331

Summary: Kopete crashes when receives response to Jabber disco request to contact, using Bombus mobile jabber client
Product: [Unmaintained] kopete Reporter: Serhiy Kachanuk <serzholino>
Component: Jabber PluginAssignee: Kopete Developers <kopete-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: maxposedon
Priority: NOR    
Version First Reported In: 0.50.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Backtrace
log from bugreport in separate text file
proposed patch to fix

Description Serhiy Kachanuk 2007-10-25 17:26:33 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

Here is kopete console output when this happens:

kopete(7012)/kopete (jabber) JabberByteStream::slotReadyRead: called:  available:  362
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML IN: <presence from="zet@jabber.ru/Bombus" to="serzh@jabber.16x.zp.ua/KDE4" >
<priority>78</priority>
<status>в фокусе</status>
<c xmlns="http://jabber.org/protocol/caps" node="http://bombus-im.org/java#0.4.6.1199M-Zlib--zet" ver="OunRvwK/bS/AuPFNFEgyKJea3hU=" hash="sha-1" />
</presence>
"
kopete(7012)/kopete (jabber) JabberAccount::slotResourceAvailable: New resource available for  "zet@jabber.ru/Bombus"
kopete(7012)/kopete (jabber) JabberResourcePool::addResource: Adding new resource  "Bombus"  for  "zet@jabber.ru"
kopete(7012)/kopete (jabber) JabberResourcePool::addResource: Initial update of capabilities for JID:  "zet@jabber.ru/Bombus"
kopete(7012)/kopete (jabber) JabberCapabilitiesManager::updateCapabilities: "Sending disco request to zet@jabber.ru/Bombus, node=http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#OunRvwK/bS/AuPFNFEgyKJea3hU="
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML OUT: <iq type="get" to="zet@jabber.ru/Bombus" id="abe5a" >
<query xmlns="http://jabber.org/protocol/disco#info" node="http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#OunRvwK/bS/AuPFNFEgyKJea3hU=" />
</iq>
"
kopete(7012)/kopete (jabber) JabberCapabilitiesManager::updateCapabilities: "Sending disco request to zet@jabber.ru/Bombus, node=http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#"
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML OUT: <iq type="get" to="zet@jabber.ru/Bombus" id="abe6a" >
<query xmlns="http://jabber.org/protocol/disco#info" node="http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#" />
</iq>
"
kopete(7012)/kopete (jabber) JabberBaseContact::reevaluateStatus: Determining new status for  "zet@jabber.ru"
kopete(7012)/kopete (jabber) JabberResourcePool::bestJabberResource: Determining best resource for  "zet@jabber.ru"
kopete(7012)/kopete (jabber) JabberResourcePool::lockedJabberResource: No lock available for  "zet@jabber.ru"
kopete(7012)/kopete (jabber) JabberResourcePool::bestJabberResource: Taking ' "Bombus" ' as first available resource.
kopete(7012)/libkopete Kopete::OnlineStatusManager::cacheLookupByObject: finger print: "Online/jabber_protocol/#000000//16/a" , icon:  "jabber_protocol"
kopete(7012)/kopete (jabber) JabberBaseContact::reevaluateStatus: New status for  "zet@jabber.ru"  is  "Online"
kopete(7012)/libkopete Kopete::OnlineStatusManager::cacheLookupByObject: finger print: "Online/jabber_protocol/#000000//16/a" , icon:  "jabber_protocol"
kopete(7012)/kopete (jabber) JabberContact::manager: called, canCreate:  0
kopete(7012)/kopete (jabber) JabberContact::manager: called, canCreate:  0
kopete(7012)/kopete (jabber) JabberContact::manager: called, canCreate:  0
kopete(7012)/kopete (jabber) JabberContact::manager: called, canCreate:  0
kopete(7012)/kopete (jabber) JabberResource::slotGetTimedClientVersion: Requesting client version for  "zet@jabber.ru/Bombus"
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML OUT: <iq type="get" to="zet@jabber.ru/Bombus" id="abe7a" >
<query xmlns="jabber:iq:version"/>
</iq>
"
knotify(6826) KNotify::event: 146  ref= 0
kopete(7012)/kopete (jabber) JabberByteStream::slotReadyRead: called:  available:  314
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML IN: <iq from="zet@jabber.ru/Bombus" type="result" to="serzh@jabber.16x.zp.ua/KDE4" id="abe7a" >
<query xmlns="jabber:iq:version">
<name>Bombus</name>
<version>0.4.6.1199M-Zlib--zet (en)</version>
<os>MIDP2 Platform=Nokia6230i/03.70</os>
</query>
</iq>
"
kopete(7012)/libkopete Kopete::OnlineStatusManager::cacheLookupByObject: finger print: "Online/jabber_protocol/#000000//16/a" , icon:  "jabber_protocol"
kopete(7012)/kopete (jabber) JabberResourcePool::slotResourceUpdated: Updating capabilities for JID:  "zet@jabber.ru/Bombus"
kopete(7012)/kopete (jabber) JabberByteStream::slotReadyRead: called:  available:  874
kopete(7012)/kopete (jabber - raw protocol) JabberAccount::slotClientDebugMessage: "XML IN: <iq from="zet@jabber.ru/Bombus" type="result" to="serzh@jabber.16x.zp.ua/KDE4" id="abe5a" >
<query xmlns="http://jabber.org/protocol/disco#info" node="http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#OunRvwK/bS/AuPFNFEgyKJea3hU=" >
<identity category="client" type="phone" name="Bombus" />
<feature var="http://jabber.org/protocol/chatstates" />
<feature var="http://jabber.org/protocol/disco#info" />
<feature var="http://jabber.org/protocol/ibb" />
<feature var="http://jabber.org/protocol/muc" />
<feature var="http://jabber.org/protocol/si" />
<feature var="http://jabber.org/protocol/si/profile/file-transfer" />
<feature var="jabber:iq:time" />
<feature var="jabber:iq:version" />
<feature var="jabber:x:data" />
<feature var="urn:xmpp:ping" />
<feature var="urn:xmpp:receipts" />
<feature var="urn:xmpp:time" />
</query>
</iq>
"
kopete(7012)/kopete (jabber) JabberCapabilitiesManager::discoRequestFinished: "Disco response from zet@jabber.ru/Bombus, node=http://bombus-im.org/java#0.4.6.1199M-Zlib--zet#OunRvwK/bS/AuPFNFEgyKJea3hU=, success=1"
ASSERT: "tokens.count() == 2" in file /home/serzh/src/KDE/trunk/KDE/kdenetwork/kopete/protocols/jabber/jabbercapabilitiesmanager.cpp, line 450
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = kopete path = <unknown> pid = 7012
sock_file=/home/serzh/.kde4/socket-gendalf/kdeinit4__0
kdeinit4: Got EXEC_NEW '/home/serzh/kde4/lib/kde4/libexec/drkonqi' from socket.
kdeinit4: preparing to launch /home/serzh/kde4/lib/kde4/libexec/drkonqi
kdeinit4: PID 7563 terminated.

Kopete form KDE3 and recently released psi 0.11 works ok with this contact
Comment 1 Serhiy Kachanuk 2008-01-06 19:04:35 UTC
Created attachment 22872 [details]
Backtrace

Here is backtrace of mentioned crash
Comment 2 Serhiy Kachanuk 2008-01-06 19:08:17 UTC
Created attachment 22873 [details]
log from bugreport in separate text file
Comment 3 Serhiy Kachanuk 2008-01-07 15:47:30 UTC
Created attachment 22890 [details]
proposed patch to fix

Proposed fix. Looking at returned node string from Bombus client, it has more
tan 2 section, separated by "#" so maybe ASSERT in line 450 isn't correct? This
patch removes this assert and now kopete doesn't crash anymore
Comment 4 Serhiy Kachanuk 2008-01-07 15:49:32 UTC
Sorry, assert in line 450 of protocols/jabber/jabbercapabilitiesmanager.cpp:
>Q_ASSERT(tokens.count() == 2);
Comment 5 Matt Rogers 2008-02-07 06:13:19 UTC
Can you tell if your patch has other effects if the assert is removed? 
Comment 6 Serhiy Kachanuk 2008-02-09 09:46:11 UTC
I use kopete trunk in daily basis, haven't found any other effects since patching.
Comment 7 Olivier Goffart 2008-04-23 00:09:54 UTC
Fixed in r798338
Thanks for your patch anyway.
Comment 8 Olivier Goffart 2008-04-23 00:54:00 UTC
*** Bug 156493 has been marked as a duplicate of this bug. ***