Bug 151399 - Large amounts of emoticons make Kopete crash
Summary: Large amounts of emoticons make Kopete crash
Status: RESOLVED WORKSFORME
Alias: None
Product: kopete
Classification: Applications
Component: libkopete (show other bugs)
Version: 0.12.5
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-26 19:43 UTC by Frank Mulder
Modified: 2020-12-06 10:23 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 Frank Mulder 2007-10-26 19:43:55 UTC
Version:           0.12.5 (using KDE 3.5.7, Kubuntu (feisty) 4:3.5.7-0ubuntu1~feisty2)
Compiler:          Target: i486-linux-gnu
OS:                Linux (i686) release 2.6.20-16-generic

When I receive a message from an MSN user with a large amount of emoticons, Kopete crashes. The same holds if I send many emoticons myself (like ":P:P:P:P:P:P".. and so on, a few hundred times).

Either Kopete should reject the message, or it should be optimised in such a way that it is able to handle this, but it should not crash.
Comment 1 Bart de Hey 2007-12-16 20:42:17 UTC
I Also had the same error on Debian unstable using kopete 0.12.7 (kde 3.5.8) with alot of custom smileys being send to me, i haven't tested if it also happens with alot of normal smileys. It totally crashed the application
Comment 2 Matt Rogers 2008-02-07 06:11:57 UTC
We need a backtrace of the crash. Please see http://techbase.kde.org/index.php?title=Development/Tutorials/Debugging/How_to_create_useful_crash_reports for more information on how to provide the information we need to diagnose the problem.
Comment 3 Frank Mulder 2008-02-07 13:00:10 UTC
There is no backtrace. The whole application just hangs, does not react, and waits to be killed by someone. If you don't call that a crash, you may turn this into a 'normal' bug.
Comment 4 Matt Rogers 2008-02-07 19:15:22 UTC
A backtrace would still be useful in this case, since it will help give us an idea of what part of the code it hangs at. When it hangs, you can attach gdb to it and make a backtrace that way. The steps go something like:

1. Run kopete
2. Wait for it to hang
3. When it hangs, open a terminal window
4. look up the process id of kopete using "ps ax" on the command line.
5. run "gdb kopete --pid=pid-you-just-found" where "pid-you-just-found" is the process id you just looked up.
6. type "bt" into the gdb prompt after everything has finished loading.
7. Paste the backtrace into the comment field on the bug report.


Also, are you using a particular set of emoticons that I can download to use to reproduce the problem?
Comment 5 Frank Mulder 2008-02-07 21:43:26 UTC
(gdb) bt
#0  0xb6b790b0 in QString::find () from /usr/lib/libqt-mt.so.3
#1  0xb7e9c3e9 in Kopete::Emoticons::tokenize () from /usr/lib/libkopete.so.1
#2  0xb7e9cda3 in Kopete::Emoticons::parse () from /usr/lib/libkopete.so.1
#3  0xb7e9f7f9 in Kopete::Emoticons::parseEmoticons () from /usr/lib/libkopete.so.1
#4  0xb7e232fc in Kopete::Message::parsedBody () from /usr/lib/libkopete.so.1
#5  0xb3c04044 in ChatMessagePart::appendMessage () from /usr/lib/kde3/kopete_chatwindow.so
#6  0xb3bec9d3 in ChatView::appendMessage () from /usr/lib/kde3/kopete_chatwindow.so
#7  0xb7e9d419 in KopeteViewManager::messageAppended () from /usr/lib/libkopete.so.1
#8  0xb7e9df04 in KopeteViewManager::qt_invoke () from /usr/lib/libkopete.so.1
#9  0xb685fb10 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#10 0xb7e154fe in Kopete::ChatSessionManager::display () from /usr/lib/libkopete.so.1
#11 0xb7e15c59 in Kopete::ChatSessionManager::qt_emit () from /usr/lib/libkopete.so.1
#12 0xb685fc11 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#13 0xb7e13a9e in Kopete::ChatSession::messageAppended () from /usr/lib/libkopete.so.1
#14 0xb7e718f5 in Kopete::TemporaryKMMCallbackAppendMessageHandler::handleMessage () from /usr/lib/libkopete.so.1
#15 0xb7e0a8ec in Kopete::MessageHandler::handleMessageInternal () from /usr/lib/libkopete.so.1
#16 0xb7e0ae11 in Kopete::MessageHandler::messageAccepted () from /usr/lib/libkopete.so.1
#17 0xb7e0ae44 in Kopete::MessageHandler::handleMessage () from /usr/lib/libkopete.so.1
#18 0xb57f6248 in HistoryMessageLogger::handleMessage () from /usr/lib/kde3/kopete_history.so
#19 0xb7e0a8ec in Kopete::MessageHandler::handleMessageInternal () from /usr/lib/libkopete.so.1
#20 0xb7e0ae11 in Kopete::MessageHandler::messageAccepted () from /usr/lib/libkopete.so.1
#21 0xb7e0ae44 in Kopete::MessageHandler::handleMessage () from /usr/lib/libkopete.so.1
---Type <return> to continue, or q <return> to quit---
#22 0xb7e16af9 in Kopete::SimpleMessageHandler::handleMessage () from /usr/lib/libkopete.so.1
#23 0xb7e0a8ec in Kopete::MessageHandler::handleMessageInternal () from /usr/lib/libkopete.so.1
#24 0xb7e0ea5e in Kopete::ProcessMessageTask::slotStart () from /usr/lib/libkopete.so.1
#25 0xb7e16da3 in Kopete::ProcessMessageTask::qt_invoke () from /usr/lib/libkopete.so.1
#26 0xb685fb10 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#27 0xb6bef32e in QSignal::signal () from /usr/lib/libqt-mt.so.3
#28 0xb687ecc6 in QSignal::activate () from /usr/lib/libqt-mt.so.3
#29 0xb6886eaa in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#30 0xb67f436a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#31 0xb67f6193 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#32 0xb6fbfb52 in KApplication::notify () from /usr/lib/libkdecore.so.4
#33 0xb67856c9 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#34 0xb67e71b1 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#35 0xb679a19a in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#36 0xb680f6e4 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#37 0xb680f3e2 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#38 0xb67f5f13 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#39 0x0807fc0c in ?? ()
#40 0xbfac526c in ?? ()
#41 0xbfac5390 in ?? ()
#42 0xbfac53a0 in ?? ()
#43 0x00000000 in ?? ()
Comment 6 Frank Mulder 2008-02-07 21:52:18 UTC
I am using the CrystalMess emoticon theme: http://kde-look.org/content/show.php/CrystalMess+for+Kopete?content=10681.

As chat window style I use Stockholm (if that matters); it's an Adium style from here: http://www.adiumxtras.com/index.php?a=xtras&xtra_id=1760. I don't know what version of the style I have.
Comment 7 Ramon Antonio Parada (brainsqueezer) 2008-07-23 18:30:11 UTC
Tried to reproduce in 0.50.80 (Debian experimental) 

1 Sent many ":P" through MSN
2 Kopete told me text should be sent in 30 messages
3 Kopete UI freezes. One core is at 100% usage by Kopete. Memory increases slowly from 37MB to 105MB. Shared memory maintains: 30MB
4 After some time chat window shows completely gray
5 Later kopete main window also shows gray
6 After 29 minutes message appears as sent
7 At the same time I'm shown as offline
8 Couple of second after kopete reconnects
9 Contact was now offline so coun't check if message is sent after this
Comment 8 Ramon Antonio Parada (brainsqueezer) 2008-07-23 18:43:31 UTC
Need to add to report #7 that kopete freezes when showing history for that conversation.

In another try for reproduce bug it creshed (0.50.80). Still trying to reproduce
Comment 9 A. Spehr 2008-07-26 23:14:11 UTC
Something like 500 yahoo theme emoticons will still make this crash.
r828851
Comment 10 A. Spehr 2008-07-26 23:15:13 UTC
yes, it splits it up into different messages 
tested on yahoo
Comment 11 Justin Zobel 2020-12-03 21:58:59 UTC
Thank you for the report, Frank.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 12 Frank Mulder 2020-12-06 10:23:41 UTC
Thanks for looking into this. (After 13 years! :D)

I do not use Kopete any more, so I am unable to verify whether this has been resolved. I will set this issue to Resolved anyway, to help you clean up the list of bugs. In case anyone else still experiences this issue, I guess they can reopen the issue or create a new one.