Bug 122952 - Large custom avatar in Jabber freezes UI
Summary: Large custom avatar in Jabber freezes UI
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Applications
Component: Jabber Plugin (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
: 121537 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-03-02 01:57 UTC by Peter van der Male
Modified: 2010-01-17 15:22 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter van der Male 2006-03-02 01:57:10 UTC
Version:           0.11.91 & 0.11.1 (using KDE KDE 3.5.1)
Installed from:    Gentoo Packages
Compiler:          gcc (GCC) 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)
 CFLAGS="-O -march=pentium4 -pipe"
OS:                Linux

When recieveing a chat message for any protocol the UI freezes and cpuload nears 100% for the kopete process.
with msn the freeze occurs when the message arrives

----------------------
type another message
libkopete: [virtual Kopete::MessageEvent::~MessageEvent()]
kopete (msn - raw protocol): [void MSNSocket::slotDataReceived()] ACK 11
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
kopete (msn - raw protocol): [void MSNSocket::slotDataReceived()] MSG loukas@xxx.com snare 96
MIME-Version: 1.0
Content-Type: text/x-msmsgscontrol
TypingUser: loukas@xxx.com
MNG error 1029: Chunk out of sequence; chunk TERM; subcode 0:0
kopete (msn - raw protocol): [void MSNSocket::slotDataReceived()] MSG loukas@xxx.com snare 154
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
User-Agent: Gaim/1.5.0
X-MMS-IM-Format: FN=MS%20Sans%20Serif; EF=; CO=0; PF=0

pantstek
***[[ freezes here for a minute or two ]]***

then continues 

with Jabber:
---------------------------
kopete (jabber - raw protocol):
kopete (jabber): [void JabberAccount::slotReceivedMessage(const XMPP::Message&)] New message from edwin@barnet.com.au/Gaim
kopete (jabber): [virtual void JabberContact::handleIncomingMessage(const XMPP::Message&)] Received Message Type:chat
kopete (jabber): [JabberChatSession* JabberContact::manager(const QString&, Kopete::Contact::CanCreateFlags)] called, canCreate: 1, Resource: 'Gaim'
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 xHTML message
kopete (jabber): [void JabberChatSession::slotUpdateDisplayName()]
kopete: [void ChatMessagePart::writeTemplate()]

***[[freezes here for a couple of minutes]]***
then continues:

kopete: [void ChatMessagePart::changeStyle()] Finish changing style.
libkopete: [void KopeteSystemTray::addBalloon()] msg text=this is another try.
libkopete: [virtual Kopete::MessageEvent::~MessageEvent()]
kopete (jabber - raw protocol): [void JabberAccount::slotClientDebugMessage(const QString&)] XML IN: <message from="edwin@barnet.com.au/Gaim" type="chat" to="mobtek@jabber.org/Kopete" >
<x xmlns="jabber:x:event"/>
</message>
--------------------------------

Changing the styles didn't help and with an msn msg it's when the actual message is recieved, doesn't create an actual crash though just very annoying :)

Any ideas?
Comment 1 Peter van der Male 2006-03-02 02:04:01 UTC
Oh 0.11.91 was compiled from src and not a gentoo package
Comment 2 Matt Rogers 2006-03-04 17:02:33 UTC
are you using the history plugin or the statistics plugin? If so, does turning them off help with the delay?
Comment 3 Peter van der Male 2006-03-05 00:36:23 UTC
I was using the History plugin, just tested it now without that plugin and I still get the same behaviour.
Comment 4 Olivier Goffart 2006-03-05 15:57:07 UTC
can you run gdb,  and get a backtrace when kopete is frezeed ?
Comment 5 Peter van der Male 2006-03-06 01:16:17 UTC
How do I get a backtrace from a running process? it actually doesn't crash.
Comment 6 Olivier Goffart 2006-03-10 22:52:36 UTC
gdb kopete `pidof kopete`

and in the gdb console, type bt

if it doesn't work, try running kopete with the --nofork option

Comment 7 Olivier Goffart 2006-03-10 23:17:44 UTC
*** Bug 121537 has been marked as a duplicate of this bug. ***
Comment 8 Michaël Larouche 2006-03-11 00:58:42 UTC
Can you confirm if it's still present with latest 0.12 SVN  ?
Comment 9 Peter van der Male 2006-03-13 09:03:34 UTC
Michaël it's still present in the beta1 version,
this is the output from gdb
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7c44ec1 in select () from /lib/tls/libc.so.6
#2  0x42c6828a in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3
#3  0x42cd030b in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#4  0x42cd0262 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#5  0x42cbd6bb in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#6  0x08073fd8 in main (argc=1, argv=0xbfb660b4) at main.cpp:107

and also this on another try

(gdb) bt
#0  0xb7bfd81c in memcpy () from /lib/tls/libc.so.6
#1  0x42ff87c8 in QString::operator+= () from /usr/qt/3/lib/libqt-mt.so.3
#2  0x42fcd9b5 in QDir::cleanDirPath () from /usr/qt/3/lib/libqt-mt.so.3
#3  0x433011d9 in KApplication::authorizeURLAction () from /usr/kde/3.5/lib/libkdecore.so.4
#4  0x441c1037 in QValueList<DOM::DOMString>::~QValueList () from /usr/kde/3.5/lib/libkhtml.so.4
#5  0x441089f2 in qt_cast<KHTMLView*> () from /usr/kde/3.5/lib/libkhtml.so.4
#6  0x440db11f in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#7  0x440ed42a in QXmlAttributes::~QXmlAttributes () from /usr/kde/3.5/lib/libkhtml.so.4
#8  0x440f7cac in QXmlAttributes::~QXmlAttributes () from /usr/kde/3.5/lib/libkhtml.so.4
#9  0x440f68a6 in QXmlAttributes::~QXmlAttributes () from /usr/kde/3.5/lib/libkhtml.so.4
#10 0x440f7010 in QXmlAttributes::~QXmlAttributes () from /usr/kde/3.5/lib/libkhtml.so.4
#11 0x441003d5 in non-virtual thunk to DOM::HTMLScriptElementImpl::notifyFinished(khtml::CachedObject*) ()
   from /usr/kde/3.5/lib/libkhtml.so.4
#12 0xbfb65120 in ?? ()
#13 0xbfb65100 in ?? ()
#14 0x00000001 in ?? ()
#15 0x00000014 in ?? ()

and also


(gdb) bt
#0  0xb7bfd81c in memcpy () from /lib/tls/libc.so.6
#1  0x42ff87c8 in QString::operator+= () from /usr/qt/3/lib/libqt-mt.so.3
#2  0x42fcd9b5 in QDir::cleanDirPath () from /usr/qt/3/lib/libqt-mt.so.3
#3  0x433011d9 in KApplication::authorizeURLAction () from /usr/kde/3.5/lib/libkdecore.so.4
#4  0x441c1037 in QValueList<DOM::DOMString>::~QValueList () from /usr/kde/3.5/lib/libkhtml.so.4
#5  0x44159781 in QPtrVector<khtml::RenderLayer>::deleteItem () from /usr/kde/3.5/lib/libkhtml.so.4
#6  0x44109ab4 in qt_cast<KHTMLView*> () from /usr/kde/3.5/lib/libkhtml.so.4
#7  0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#8  0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#9  0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#10 0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#11 0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#12 0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#13 0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#14 0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#15 0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#16 0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#17 0x440d51a7 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#18 0x440db5ac in QValueListConstIterator<DOM::RegisteredEventListener>::operator++ () from /usr/kde/3.5/lib/libkhtml.so.4
#19 0x440d5010 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter () from /usr/kde/3.5/lib/libkhtml.so.4
#20 0x44262674 in DOM::Node::appendChild () from /usr/kde/3.5/lib/libkhtml.so.4
#21 0xb4ea512e in ChatMessagePart::appendMessage (this=0x85e21d8, message=@0xbfb657b0, restoring=false) at chatmessagepart.cpp:483
#22 0xb4e8f71d in ChatView::appendMessage (this=0x85d21d8, message=@0xbfb657b0) at chatview.cpp:735
#23 0xb7f2d080 in KopeteViewManager::messageAppended (this=0x8439ee8, msg=@0xbfb657b0, manager=0x859a000)
    at kopeteviewmanager.cpp:167
#24 0xb7f2e124 in KopeteViewManager::qt_invoke (this=0x8439ee8, _id=4, _o=0xbfb65640) at kopeteviewmanager.moc:125
#25 0x42d1cee9 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#26 0xb7eb279b in Kopete::ChatSessionManager::display (this=0x8348ea8, t0=@0xbfb657b0, t1=0x859a000)
    at kopetechatsessionmanager.moc:234
#27 0xb7eb2b24 in Kopete::ChatSessionManager::qt_emit (this=0x8348ea8, _id=9, _o=0xbfb65740) at kopetechatsessionmanager.moc:276
#28 0x42d1cf7a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#29 0xb7eaec9f in Kopete::ChatSession::messageAppended (this=0x859a000, t0=@0xbfb657b0, t1=0x859a000) at kopetechatsession.moc:295
#30 0xb7eb1264 in Kopete::TemporaryKMMCallbackAppendMessageHandler::handleMessage (this=0x859d878, event=0x87bed08)
    at kopetechatsession.cpp:208
#31 0xb7ef69a5 in Kopete::MessageHandler::handleMessageInternal (this=0x859d878, event=0x87bed08) at kopetemessagehandler.cpp:60
#32 0xb7ef84d8 in Kopete::ProcessMessageTask::slotStart (this=0x87c39a8) at kopetemessagehandlerchain.cpp:166
---Type <return> to continue, or q <return> to quit---
#33 0xb7ef88e0 in Kopete::ProcessMessageTask::qt_invoke (this=0x87c39a8, _id=5, _o=0xbfb658a0) at kopetemessagehandlerchain.moc:159
#34 0x42d1cee9 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#35 0x4305cf24 in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3
#36 0x42d372c9 in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3
#37 0x42d3f0a1 in QSingleShotTimer::event () from /usr/qt/3/lib/libqt-mt.so.3
#38 0x42cbd55d in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3
#39 0x42cbc942 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#40 0x432f0cb1 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4
#41 0x42cace61 in QEventLoop::activateTimers () from /usr/qt/3/lib/libqt-mt.so.3
#42 0x42c68729 in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3
#43 0x42cd030b in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#44 0x42cd0262 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#45 0x42cbd6bb in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#46 0x08073fd8 in main (argc=1, argv=0xbfb660b4) at main.cpp:107


does any of that help?
Comment 10 Silas De Munck 2006-03-13 20:54:23 UTC
I have a contact with an avatar of 190kb in size (in jabber, set with another client). Every time he says something cpu rizes to 100% for 2-3sec. 
Comment 11 Silas De Munck 2006-03-13 20:54:37 UTC
I have a contact with an avatar of 190kb in size (in jabber, set with another client). Every time he says something cpu rizes to 100% for 2-3sec. 
Comment 12 Peter van der Male 2006-03-14 00:02:49 UTC
bingo, mine were nowhere near that big, but using the custom avatars seems to have been the problem.
Comment 13 Michael 2008-07-20 15:50:11 UTC
Seems to work with the newer versions (both the kopete from kde 4.0.99 and svn trunk r835161). tested with a 10 mp avatar with something like 3 MB, and the cpu usage while reciving these messages was normal.

Such a huge avatar can be set with psi by the way, but it will take somethink like 20 minutes until it is uploaded...
Comment 14 Roman Jarosz 2010-01-17 15:22:21 UTC
Closing as Michael said that it's fixed.