Bug 121560 - kopete crashed when i receive (or maybe send ?) a message on jabber
Summary: kopete crashed when i receive (or maybe send ?) a message on jabber
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Unmaintained
Component: Chat Window (other bugs)
Version First Reported In: 0.12
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-07 20:52 UTC by kaouete
Modified: 2006-03-31 18:08 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kaouete 2006-02-07 20:52:30 UTC
Version:           0.12 (using KDE KDE 3.5.1)
Installed from:    Compiled From Sources
OS:                Linux

Hi, this is not the first time it happen.
I talk to a contact (each time it was a gtalk user but it is my only jabber contact in fact :)
and when i send a message (but maybe i receive one i dont ave the time to see ?) kopete crash.
there is the debug output, i dont have any backtrace this time:

kopete (jabber): [void JabberChatSession::slotSendTypingNotification(bool)] Send                                            ing out typing notification (false) to all chat members.
libkopete: [virtual Kopete::MessageEvent::~MessageEvent()] 
kopete (jabber - raw protocol): [void JabberAccount::slotClientDebugMessage(cons                                            t QString&)] XML IN: <message from="him@gmail.com/Talk.v86405D2497" type                                            ="chat" to="me@jabber.org/Kopete" >
<body>hop</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<nos:x xmlns:nos="google:nosave" value="disabled" />
</message>
kopete (jabber - raw protocol): 
kopete (jabber): [void JabberAccount::slotReceivedMessage(const XMPP::Message&)]                                             New message from him@gmail.com/Talk.v86405D2497
kopete (jabber): [virtual void JabberContact::handleIncomingMessage(const XMPP::                                            Message&)] Received Message Type:chat
kopete (jabber): [JabberChatSession* JabberContact::manager(const QString&, Kope                                            te::Contact::CanCreateFlags)] called, canCreate: 1, Resource: 'Talk.v86405D2497'
kopete (jabber): [JabberChatSession* JabberContact::manager(const QString&, Kope                                            te::Contact::CanCreateFlags)] Found an existing message manager for this resourc                                            e.
kopete (jabber): [virtual void JabberContact::handleIncomingMessage(const XMPP::                                            Message&)] Received a plain text message
kopete (jabber): [void JabberChatSession::slotUpdateDisplayName()] 
kopete: [void ChatMessagePart::writeTemplate()] 
kopete: [void ChatMessagePart::changeStyle()] Finish changing style.
terminate called after throwing an instance of 'DOM::DOMException'
KCrash: Application 'kopete' crashing...
Could not find 'drkonqi' executable.
KCrash cannot reach kdeinit, launching directly.
Comment 1 kaouete 2006-02-08 13:06:09 UTC
Hi, last time it looks lime my contact didnt send anything, and now it crashed another time and i dont think one of us were sending something :
that's the drkonqi backtrace :
Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1240000832 (LWP 1704)]
[New Thread -1254978640 (LWP 1725)]
0xffffe410 in __kernel_vsyscall ()
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb61ff746 in nanosleep () from /lib/tls/libc.so.6
#2  0xb61ff556 in sleep () from /lib/tls/libc.so.6
#3  0xb7014240 in KCrash::startDrKonqi () from /usr/kde/3.5/lib/libkdecore.so.4
#4  0x00000002 in ?? ()
#5  0x0821c818 in ?? ()
#6  0x0000009a in ?? ()
#7  0x65706f6b in ?? ()
#8  0x2d006574 in ?? ()
#9  0x6769732d in ?? ()
#10 0x006c616e in ?? ()
#11 0x2d2d0036 in ?? ()
#12 0x00646970 in ?? ()
#13 0x34303731 in ?? ()
#14 0x612d2d00 in ?? ()
#15 0x65767070 in ?? ()
#16 0x6f697372 in ?? ()
#17 0x2e30006e in ?? ()
#18 0x352e3131 in ?? ()
#19 0x2d2d0031 in ?? ()
#20 0x676f7270 in ?? ()
#21 0x6e6d6172 in ?? ()
#22 0x00656d61 in ?? ()
#23 0x65706f4b in ?? ()
#24 0x2d006574 in ?? ()
#25 0x6775622d in ?? ()
#26 0x72646461 in ?? ()
#27 0x00737365 in ?? ()
#28 0x6d627573 in ?? ()
#29 0x62407469 in ?? ()
#30 0x2e736775 in ?? ()
#31 0x2e65646b in ?? ()
#32 0x0067726f in ?? ()
#33 0x74732d2d in ?? ()
#34 0x75747261 in ?? ()
#35 0x00646970 in ?? ()
#36 0x00000030 in ?? ()

not really interesting .. . and the debug log were messed because i resized my terminal, so i cant post them :>
Comment 2 Olivier Goffart 2006-02-10 18:45:07 UTC
> terminate called after throwing an instance of 'DOM::DOMException'

This is probably a problem in the new style engine.
Could you recompile kopete with debug and try to reproduce ?
What chatwindow style are you using ?
Comment 3 kaouete 2006-02-10 18:52:54 UTC
ok, i already have kopete compiled with full debug, and i successed in getting backtraces, so i when i get this bug again i will have a full debug log + backtrace.

I am using the chatwindow "Clean" style.
Comment 4 kaouete 2006-02-12 13:15:11 UTC
I think i got it :
kopete (jabber - raw protocol): [void JabberAccount::slotClientDebugMessage(cons                                 t QString&)] XML OUT: <message from="kaouete@im.crazydwarves.org/Kopete" type="c                                 hat" id="aad7a" to="bichonsandy@gmail.com/Talk.v86859029FF" >
<body>exactement</body>
<x xmlns="jabber:x:event">
<offline/>
<composing/>
<delivered/>
<displayed/>
</x>
</message>
kopete (jabber - raw protocol): 
kopete (jabber): [void JabberChatSession::slotSendTypingNotification(bool)] Send                                 ing out typing notification (false) to all chat members.
libkopete: [virtual Kopete::MessageEvent::~MessageEvent()] 
kopete (jabber): [void JabberChatSession::slotSendTypingNotification(bool)] Send                                 ing out typing notification (true) to all chat members.
kopete (jabber - raw protocol): [void JabberAccount::slotClientDebugMessage(cons                                 t QString&)] XML IN: <message from="bichonsandy@gmail.com/Talk.v86859029FF" type                                 ="chat" to="kaouete@im.crazydwarves.org/Kopete" >
<body>; )</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<nos:x xmlns:nos="google:nosave" value="disabled" />
</message>
kopete (jabber - raw protocol): 
kopete (jabber): [void JabberAccount::slotReceivedMessage(const XMPP::Message&)]                                   New message from bichonsandy@gmail.com/Talk.v86859029FF
kopete (jabber): [virtual void JabberContact::handleIncomingMessage(const XMPP::                                 Message&)] Received Message Type:chat
kopete (jabber): [JabberChatSession* JabberContact::manager(const QString&, Kope                                 te::Contact::CanCreateFlags)] called, canCreate: 1, Resource: 'Talk.v86859029FF'kopete (jabber): [JabberChatSession* JabberContact::manager(const QString&, Kopete::Contact::CanCreateFlags)] Found an existing message manager for this resource.
kopete (jabber): [virtual void JabberContact::handleIncomingMessage(const XMPP::                                 Message&)] Received a plain text message
kopete (jabber): [void JabberChatSession::slotUpdateDisplayName()] 
kopete: [void ChatMessagePart::writeTemplate()] 
kopete: [void ChatMessagePart::changeStyle()] Finish changing style.
terminate called after throwing an instance of 'DOM::DOMException'

Program received signal SIGABRT, Aborted.
[Switching to Thread -1240406336 (LWP 13016)]
Error while running hook_stop:
Invalid type combination in ordering comparison.
0xffffe410 in __kernel_vsyscall ()
gdb> bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb613dd1d in raise () from /lib/tls/libc.so.6
#2  0xb613f333 in abort () from /lib/tls/libc.so.6
#3  0xb62f8607 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#4  0xb62f6441 in __cxxabiv1::__terminate () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#5  0xb62f6476 in std::terminate () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#6  0xb62f65c9 in __cxa_throw () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
#7  0xb7c18ce4 in DOM::Node::getRect () from /usr/kde/3.5/lib/libkhtml.so.4
#8  0xb30dec76 in ChatMessagePart::ToolTip::maybeTip (this=0x89595e8) at chatmessagepart.cpp:146
#9  0xb6a65e16 in QTipManager::showTip () from /usr/qt/3/lib/libqt-mt.so.3
#10 0xb6a666ae in QTipManager::qt_invoke () from /usr/qt/3/lib/libqt-mt.so.3
#11 0xb692d8f0 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#12 0xb692e01a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#13 0xb6c6ea2b in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3
#14 0xb694e3ff in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3
#15 0xb68cd1ac in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3
#16 0xb68cd33b in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#17 0xb6f155d8 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4
#18 0xbfe64700 in ?? ()
#19 0x08252fd0 in ?? ()
#20 0xbfe64460 in ?? ()
#21 0xb709fd4c in ?? () from /usr/kde/3.5/lib/libkdecore.so.4
#22 0x08ba6740 in ?? ()
#23 0x083a0e40 in ?? ()
#24 0x083a0e40 in ?? ()
#25 0xb6f155d8 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4
#26 0xbfe64700 in ?? ()
#27 0x08374258 in ?? ()
#28 0xb68cd2bd in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#29 0x00000001 in ?? ()
#30 0x000001fd in ?? ()
#31 0xbfe64700 in ?? ()
#32 0x00000018 in ?? ()
Previous frame inner to this frame (corrupt stack?)
gdb> bt full
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb613dd1d in raise () from /lib/tls/libc.so.6
No symbol table info available.
#2  0xb613f333 in abort () from /lib/tls/libc.so.6
No symbol table info available.
#3  0xb62f8607 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
No symbol table info available.
#4  0xb62f6441 in __cxxabiv1::__terminate () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
No symbol table info available.
#5  0xb62f6476 in std::terminate () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
No symbol table info available.
#6  0xb62f65c9 in __cxa_throw () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6
No symbol table info available.
#7  0xb7c18ce4 in DOM::Node::getRect () from /usr/kde/3.5/lib/libkhtml.so.4
No symbol table info available.
#8  0xb30dec76 in ChatMessagePart::ToolTip::maybeTip (this=0x89595e8) at chatmessagepart.cpp:146
        node = <incomplete type>
        contact = (class Kopete::Contact *) 0x0
        toolTipText = {static null = {static null = <same as static member of an already seen type>, d = 0x812b0c0, static shared_null = 0x812b0c0}, d = 0x812b0c0, static shared_null = 0x812b0c0}
        rect = {x1 = 0xb6176e9b, y1 = 0xb6228820, x2 = 0x8ba4be8, y2 = 0xb6317c9c}
#9  0xb6a65e16 in QTipManager::showTip () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#10 0xb6a666ae in QTipManager::qt_invoke () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#11 0xb692d8f0 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#12 0xb692e01a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#13 0xb6c6ea2b in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#14 0xb694e3ff in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#15 0xb68cd1ac in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#16 0xb68cd33b in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#17 0xb6f155d8 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4
No symbol table info available.
#18 0xbfe64700 in ?? ()
No symbol table info available.
#19 0x08252fd0 in ?? ()
No symbol table info available.
#20 0xbfe64460 in ?? ()
No symbol table info available.
#21 0xb709fd4c in ?? () from /usr/kde/3.5/lib/libkdecore.so.4
No symbol table info available.
#22 0x08ba6740 in ?? ()
No symbol table info available.
#23 0x083a0e40 in ?? ()
No symbol table info available.
#24 0x083a0e40 in ?? ()
No symbol table info available.
#25 0xb6f155d8 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4
No symbol table info available.
#26 0xbfe64700 in ?? ()
No symbol table info available.
#27 0x08374258 in ?? ()
No symbol table info available.
#28 0xb68cd2bd in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#29 0x00000001 in ?? ()
No symbol table info available.
#30 0x000001fd in ?? ()
No symbol table info available.
#31 0xbfe64700 in ?? ()
No symbol table info available.
#32 0x00000018 in ?? ()
No symbol table info available.
Comment 5 Olivier Goffart 2006-03-31 18:08:35 UTC
SVN commit 525020 by ogoffart:

* put a 0 margin to <p> that may encapsulate the message

* possible fix to bug 121560 (crash when receiving messages)
   i'm not sure this fix the bug since i haven't been able to reproduce. but when seeing the backtrace, it will probably.
BUG: 121560



 M  +5 -1      chatmessagepart.cpp  


--- branches/kopete/0.12/kopete/kopete/chatwindow/chatmessagepart.cpp #525019:525020
@@ -168,6 +168,9 @@
 		DOM::Node node = m_chat->nodeUnderMouse();
 		Kopete::Contact *contact = m_chat->contactFromNode( node );
 		QString toolTipText;
+		
+		if(node.isNull())
+			return;
 
 		// this tooltip is attached to the viewport widget, so translate the node's rect
 		// into its coordinates.
@@ -602,7 +605,8 @@
 		"a{color:%8}a.visited{color:%9}"
 		"a.KopeteDisplayName{text-decoration:none;color:inherit;}"
 		"a.KopeteDisplayName:hover{text-decoration:underline;color:inherit}"
-		".KopeteLink{cursor:pointer;}.KopeteLink:hover{text-decoration:underline}" )
+		".KopeteLink{cursor:pointer;}.KopeteLink:hover{text-decoration:underline}"
+		"p{margin:0;padding:0;}" /* some html messages are encapsuled into a <p> */ )
 		.arg( p->bgColor().name() )
 		.arg( p->fontFace().family() )
 		.arg( p->fontFace().pointSize() )