Version: .92 - Both the version from the Mandrake RPMs, as well as the one I compiled it from the Feb 16th CVS source. (using KDE KDE 3.3.1) Installed from: Mandrake RPMs Compiler: gcc 3.4.1 OS: Linux This seems very similar to Bug 81823, except that bug is fixed and this is happening when users of other IM programs (MSN users for sure) send me messages, not IRC. I recently installed the Manrake KDE3.3 (+ update RPMs) packages on my main system. Kopete .92 had not previously been stable for me, so I tried the latest CVS (on Feb 16th) hoping it may have already been fixed there. My --version reports: Qt: 3.3.3 KDE: 3.3.1 Kopete: 0.9.92 I made two changes to the CVS code to get it to compile: I removed the line where the auto-tab resizing (KDE3.4 feature?) property was set in the chat window code, and removed the KDE_EXPORT (broken until 3.3.2?) references from dummy.cpp. After that, it compiled and installed fine. My crash is not occuring within either of those modules. I occasionally get the crash below after clicking 'ignore' on the chat balloon when someone not in my list has messaged me. This is pretty much what was happening to me in other versions too (someone messages me overnight, I come back the next morning, click ignore, boom). I've not received a crash when doing anything else in Kopete, and it's the only program on my system that ever crashes. --------------------- Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 1105300096 (LWP 18187)] [New Thread 1155595184 (LWP 1830cool ] [Thread debugging using libthread_db enabled] [New Thread 1105300096 (LWP 18187)] [New Thread 1155595184 (LWP 1830cool ] [Thread debugging using libthread_db enabled] [New Thread 1105300096 (LWP 18187)] [New Thread 1155595184 (LWP 1830cool ] [New Thread 1147202480 (LWP 18307)] [New Thread 1138523056 (LWP 18306)] [New Thread 1116957616 (LWP 18305)] [New Thread 1125350320 (LWP 18304)] [KCrash handler] #7 0x416094e8 in QString::QString () from /usr/lib/qt3/lib/libqt-mt.so.3 #8 0x400edb4b in Kopete::MetaContact::displayName (this=0x865ec7cool at kopetemetacontact.cpp:507 #9 0x08076cef in KopeteSystemTray::addBalloon (this=0x81f4abcool at systemtray.cpp:245 #10 0x08076b24 in KopeteSystemTray::slotEventDone (this=0x81f4ab8, event=0x863d79cool at systemtray.cpp:220 #11 0x0807792f in KopeteSystemTray::qt_invoke (this=0x81f4ab8, _id=62, _o=0xbfffefd0) at systemtray.moc:121 #12 0x4131768d in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #13 0x4175dd70 in vtable for QGArray () from /usr/lib/qt3/lib/libqt-mt.so.3 #14 0x084b9d18 in ?? () #15 0x00000000 in ?? () #16 0x0863d798 in ?? () #17 0x0829a938 in ?? () #18 0x00000000 in ?? () #19 0xbfffefd8 in ?? () #20 0x40124c86 in Kopete::MessageEvent::staticMetaObject () at kopetemessageevent.moc:51 ---------------------------- Any help would be greatly appreciated. -J
The temporary metacontact created to represent the message sender was deleted the balloon was shown. Since the above backtrace shows a balloon being shown, there must have been two balloons, and clicking Ignore on the first one caused the second one to appear, with the bad metacontact pointer. Anyone else got an idea how it could get deleted? I tried to reproduce by deleting the sender before clicking Ignore, and ignoring messages from a sender who'd blocked me, but couldn't cause a crash.
CVS commit by ogoffart: Fix bug 100196: Kopete Crashes When Ignoring Messages from Non-Buddies The problem was not with one, not with two, but with at least 3 messages one ignore the fisrt => the contact is removed => the next event is removed => addBalloon is called for the third event => crash Solved the problem by delaying addBalloon, so it will leave the time to delete all events with deleteLater before addBalloon is called. to be backported BUG: 100196 M +5 -1 systemtray.cpp 1.56 M +1 -1 systemtray.h 1.10 --- kdenetwork/kopete/kopete/systemtray.cpp #1.55:1.56 @@ -231,5 +231,9 @@ void KopeteSystemTray::slotEventDone(Kop m_balloon=0l; if(!mEventList.isEmpty()) - addBalloon(); + { + //delay the addBalloon to let the time to event be deleted + //in case a contact has been deleted cf Bug 100196 + QTimer::singleShot(0, this, SLOT(addBalloon())); + } } --- kdenetwork/kopete/kopete/systemtray.h #1.9:1.10 @@ -76,8 +76,8 @@ private slots: void slotConfigChanged(); void slotReevaluateAccountStates(); + void addBalloon(); private: KopeteSystemTray( QWidget* parent, const char* name ); - void addBalloon(); QString squashMessage( const Kopete::Message& msgText );
You need to log in before you can comment on or make changes to this bug.