Bug 128163

Summary: KDesktop<->Kopete freeze in a dcop call
Product: [Unmaintained] kdesktop Reporter: jaguarwan <jaguarwan>
Component: generalAssignee: David Faure <faure>
Status: CLOSED WORKSFORME    
Severity: normal CC: finex
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Slackware   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description jaguarwan 2006-05-28 04:56:02 UTC
Version:            (using KDE KDE 3.5.2)
Installed from:    Slackware Packages
Compiler:          gcc 3.4.6
 
OS:                Linux

Hello,

I stumbled on an interesting bug in kdesktop some times ago, but now I managed to reproduce it reliably and take backtraces :)

Here is how I reliably made kdesktop and kopete freeze:
- I started konqueror from a little superkaramba applet
- My start page is quite resource consuming, so while konqueror is consuming CPU starting itself and processing the web page:
- I repeatedly right/left clicked on a mount point icon on my desktop and on the desktop itself (yay that's quite far fetched - I clicked that badly because I was in a hurry the day I first triggered it). Usually, three well paced mischievous clicks are sufficient.

And then, kdesktop froze. Interestingly enough, Kopete too. May the bug come from a strange interaction between them ?

Here is my setup:
KDE 3.5.2/Kopete 0.11.1 running on Slackware-current
custom linux 2.6.16.16 SMP kernel
Pentium4 with HT enabled
Memory recently checked with memcheck86 ;)

I took backtraces by attaching gdb in text mode, here they are:

KDESKTOP:
------------------------8<----------------------------------

0xa6a0622e in __read_nocancel () from /lib/tls/libpthread.so.0
#0  0xa6a0622e in __read_nocancel () from /lib/tls/libpthread.so.0
#1  0xa74c8dce in _kde_IceTransFreeConnInfo () from /opt/kde/lib/libDCOP.so.4
#2  0xa74c921f in _kde_IceTransRead () from /opt/kde/lib/libDCOP.so.4
#3  0xa74c1abc in _kde_IceRead () from /opt/kde/lib/libDCOP.so.4
#4  0xa74c20e7 in KDE_IceProcessMessages () from /opt/kde/lib/libDCOP.so.4
#5  0xa74b1020 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#6  0xa74b1611 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#7  0xa74b5f5c in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#8  0xa74b5fc8 in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#9  0xa5ebefad in KIMIface_stub::fileTransferContacts () from /opt/kde/lib/libkimproxy.so.0
#10 0xa5eb98ba in KIMProxy::fileTransferContacts () from /opt/kde/lib/libkimproxy.so.0
#11 0xa60e3f8d in KMetaMenu::KMetaMenu () from /opt/kde/lib/kde3/libkuickplugin.so
#12 0xa60df1ed in KTestMenu::slotPrepareMenu () from /opt/kde/lib/kde3/libkuickplugin.so
#13 0xa60df950 in KTestMenu::qt_invoke () from /opt/kde/lib/kde3/libkuickplugin.so
#14 0xa6f7dd34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#15 0xa6f7e4cc in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#16 0xa72d3a9c in QPopupMenu::aboutToShow () from /usr/lib/qt/lib/libqt-mt.so.3
#17 0xa7091039 in QPopupMenu::popup () from /usr/lib/qt/lib/libqt-mt.so.3
#18 0xa709445f in QPopupMenu::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#19 0xa7f1ae9c in KDIconView::popupMenu () from /opt/kde/lib/libkdeinit_kdesktop.so
#20 0xa7f1b05a in KDIconView::slotContextMenuRequested () from /opt/kde/lib/libkdeinit_kdesktop.so
#21 0xa7f1e617 in KDIconView::qt_invoke () from /opt/kde/lib/libkdeinit_kdesktop.so
#22 0xa6f7dd34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#23 0xa72ead69 in QIconView::contextMenuRequested () from /usr/lib/qt/lib/libqt-mt.so.3
#24 0xa715ac55 in QIconView::contentsContextMenuEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#25 0xa709d2e5 in QScrollView::viewportContextMenuEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#26 0xa709f319 in QScrollView::eventFilter () from /usr/lib/qt/lib/libqt-mt.so.3
#27 0xa71527ef in QIconView::eventFilter () from /usr/lib/qt/lib/libqt-mt.so.3
#28 0xa6f7b0bf in QObject::activate_filters () from /usr/lib/qt/lib/libqt-mt.so.3
#29 0xa6f7b194 in QObject::event () from /usr/lib/qt/lib/libqt-mt.so.3
#30 0xa6fb750f in QWidget::event () from /usr/lib/qt/lib/libqt-mt.so.3
#31 0xa6f1922f in QApplication::internalNotify () from /usr/lib/qt/lib/libqt-mt.so.3
#32 0xa6f1968e in QApplication::notify () from /usr/lib/qt/lib/libqt-mt.so.3
#33 0xa7588965 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#34 0xa6eb37a2 in QETWidget::translateMouseEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#35 0xa6eb1821 in QApplication::x11ProcessEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#36 0xa6ec4f25 in QEventLoop::processEvents () from /usr/lib/qt/lib/libqt-mt.so.3
#37 0xa6f2f951 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#38 0xa6f2f8a6 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#39 0xa6f1838f in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#40 0xa7f0e29b in kdemain () from /opt/kde/lib/libkdeinit_kdesktop.so
#41 0x0804872e in ?? ()
#42 0x00000001 in ?? ()
#43 0xaf885734 in ?? ()
#44 0x08049838 in ?? ()
#45 0xa68d4ffc in ?? () from /lib/tls/libc.so.6
#46 0x00000000 in ?? ()

------------------------8<----------------------------------

KOPETE 0.11.1
------------------------8<----------------------------------

0xa6353251 in __read_nocancel () from /lib/tls/libpthread.so.0
#0  0xa6353251 in __read_nocancel () from /lib/tls/libpthread.so.0
#1  0xa6deddce in _kde_IceTransFreeConnInfo () from /opt/kde/lib/libDCOP.so.4
#2  0xa6dee21f in _kde_IceTransRead () from /opt/kde/lib/libDCOP.so.4
#3  0xa6de6abc in _kde_IceRead () from /opt/kde/lib/libDCOP.so.4
#4  0xa6de70e7 in KDE_IceProcessMessages () from /opt/kde/lib/libDCOP.so.4
#5  0xa6dd6020 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#6  0xa6dd6611 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#7  0xa6ddaf5c in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#8  0xa6dd0f01 in DCOPRef::callInternal () from /opt/kde/lib/libDCOP.so.4
#9  0xa6dd101d in DCOPRef::callInternal () from /opt/kde/lib/libDCOP.so.4
#10 0xa7e7e265 in Kopete::Away::slotTimerTimeout () from /opt/kde/lib/libkopete.so.1
#11 0xa7e7e4fc in Kopete::Away::qt_invoke () from /opt/kde/lib/libkopete.so.1
#12 0xa68c6d34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#13 0xa68c74cc in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#14 0xa6c089e9 in QTimer::timeout () from /usr/lib/qt/lib/libqt-mt.so.3
#15 0xa68e900f in QTimer::event () from /usr/lib/qt/lib/libqt-mt.so.3
#16 0xa686222f in QApplication::internalNotify () from /usr/lib/qt/lib/libqt-mt.so.3
#17 0xa68623cc in QApplication::notify () from /usr/lib/qt/lib/libqt-mt.so.3
#18 0xa6ead965 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#19 0xa685578c in QEventLoop::activateTimers () from /usr/lib/qt/lib/libqt-mt.so.3
#20 0xa680e4d1 in QEventLoop::processEvents () from /usr/lib/qt/lib/libqt-mt.so.3
#21 0xa6878951 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#22 0xa68788a6 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#23 0xa686138f in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3

------------------------8<----------------------------------

I also took a backtrace of the dcopserver but it appeared to work as usual:

DCOPSERVER
------------------------8<----------------------------------

0xa69d1fe8 in ___newselect_nocancel () from /lib/tls/libc.so.6
#0  0xa69d1fe8 in ___newselect_nocancel () from /lib/tls/libc.so.6
#1  0xa702a16a in QEventLoop::processEvents () from /usr/lib/qt/lib/libqt-mt.so.3
#2  0xa7094951 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#3  0xa70948a6 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#4  0xa707d38f in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#5  0xa75f3cdd in kdemain () from /opt/kde/lib/libkdeinit_dcopserver.so
#6  0xa75ff6f4 in kdeinitmain () from /opt/kde/lib/kde3/dcopserver.so

------------------------8<----------------------------------

Anyway, this bug might become nasty when you play with it, the third time I repeated it my keystrokes got ignored and the left click went weird. For example, I right clicked on the superkaramba systray icon and then on the Quit entry, but I was unable to confirm quitting - my left click on the Quit button was ignored. Already launched windows in the background could not be brought to the foreground by clicking on them as well, though I could drag them around. Weird :) I had to use ssh to kill kdesktop and all went fine after that.

Thank you for reading this, and have a nice day :)

PS: oh, I don't know if it can be useful, but as I tried to repeated it, I once got a messagebox from kdesktop about dcop, and the following message was printed on stderr:
"Very strange ! Got a DCOPReply opcode, but we were not waiting for a reply !"

Best regards.
Comment 1 jaguarwan 2006-05-28 05:48:22 UTC
Hmm, apparently high cpu usage is not even required, I triggered it again inadvertently right now by just right clicking on the mount point of my external USB hard drive to unmount it. Maybe it is more prone to be triggered after having fiddled with it however.
Comment 2 jaguarwan 2006-06-06 00:26:22 UTC
I upgraded to KDE 3.5.3/Kopete 0.11.3 today and I can still reproduce this bug by right clicking successively on an icon and the desktop, however the Kopete backtrace has slightly changed.

KOPETE 0.11.3
0xa63c4251 in __read_nocancel () from /lib/tls/libpthread.so.0
#0  0xa63c4251 in __read_nocancel () from /lib/tls/libpthread.so.0
#1  0xa6e65dce in _kde_IceTransFreeConnInfo () from /opt/kde/lib/libDCOP.so.4
#2  0xa6e6621f in _kde_IceTransRead () from /opt/kde/lib/libDCOP.so.4
#3  0xa6e5eabc in _kde_IceRead () from /opt/kde/lib/libDCOP.so.4
#4  0xa6e5f0e7 in KDE_IceProcessMessages () from /opt/kde/lib/libDCOP.so.4
#5  0xa6e4e020 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#6  0xa6e4e611 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#7  0xa6e52f5c in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#8  0xa6e48f01 in DCOPRef::callInternal () from /opt/kde/lib/libDCOP.so.4
#9  0xa6e4901d in DCOPRef::callInternal () from /opt/kde/lib/libDCOP.so.4
#10 0xa7f001e5 in Kopete::Away::slotTimerTimeout () from /opt/kde/lib/libkopete.so.1
#11 0xa7f0047c in Kopete::Away::qt_invoke () from /opt/kde/lib/libkopete.so.1
#12 0xa693fd34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#13 0xa69404cc in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#14 0xa6c819e9 in QTimer::timeout () from /usr/lib/qt/lib/libqt-mt.so.3
#15 0xa696200f in QTimer::event () from /usr/lib/qt/lib/libqt-mt.so.3
#16 0xa68db22f in QApplication::internalNotify () from /usr/lib/qt/lib/libqt-mt.so.3
#17 0xa68db3cc in QApplication::notify () from /usr/lib/qt/lib/libqt-mt.so.3
#18 0xa6f259f5 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#19 0xa68ce78c in QEventLoop::activateTimers () from /usr/lib/qt/lib/libqt-mt.so.3
#20 0xa68874d1 in QEventLoop::processEvents () from /usr/lib/qt/lib/libqt-mt.so.3
#21 0xa68f1951 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#22 0xa68f18a6 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#23 0xa68da38f in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#24 0x0806da13 in ?? ()
#25 0xafcbaf60 in ?? ()
#26 0xafcbaf40 in ?? ()
#27 0xafcbaf40 in ?? ()
#28 0x00000000 in ?? ()

KDESKTOP/KDE 3.5.3
0xa6bea22e in __read_nocancel () from /lib/tls/libpthread.so.0
#0  0xa6bea22e in __read_nocancel () from /lib/tls/libpthread.so.0
#1  0xa76b3dce in _kde_IceTransFreeConnInfo () from /opt/kde/lib/libDCOP.so.4
#2  0xa76b421f in _kde_IceTransRead () from /opt/kde/lib/libDCOP.so.4
#3  0xa76acabc in _kde_IceRead () from /opt/kde/lib/libDCOP.so.4
#4  0xa76ad0e7 in KDE_IceProcessMessages () from /opt/kde/lib/libDCOP.so.4
#5  0xa769c020 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#6  0xa769c611 in DCOPClient::callInternal () from /opt/kde/lib/libDCOP.so.4
#7  0xa76a0f5c in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#8  0xa76a0fc8 in DCOPClient::call () from /opt/kde/lib/libDCOP.so.4
#9  0xa53fffad in KIMIface_stub::fileTransferContacts () from /opt/kde/lib/libkimproxy.so.0
#10 0xa53fa8ba in KIMProxy::fileTransferContacts () from /opt/kde/lib/libkimproxy.so.0
#11 0xa5626f8d in KMetaMenu::KMetaMenu () from /opt/kde/lib/kde3/libkuickplugin.so
#12 0xa56221ed in KTestMenu::slotPrepareMenu () from /opt/kde/lib/kde3/libkuickplugin.so
#13 0xa5622950 in KTestMenu::qt_invoke () from /opt/kde/lib/kde3/libkuickplugin.so
#14 0xa7169d34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#15 0xa716a4cc in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#16 0xa74bfa9c in QPopupMenu::aboutToShow () from /usr/lib/qt/lib/libqt-mt.so.3
#17 0xa727d039 in QPopupMenu::popup () from /usr/lib/qt/lib/libqt-mt.so.3
#18 0xa728045f in QPopupMenu::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#19 0xa676b64c in KDIconView::popupMenu () from /opt/kde/lib/libkdeinit_kdesktop.so
#20 0xa676b80a in KDIconView::slotContextMenuRequested () from /opt/kde/lib/libkdeinit_kdesktop.so
#21 0xa676edc7 in KDIconView::qt_invoke () from /opt/kde/lib/libkdeinit_kdesktop.so
#22 0xa7169d34 in QObject::activate_signal () from /usr/lib/qt/lib/libqt-mt.so.3
#23 0xa74d6d69 in QIconView::contextMenuRequested () from /usr/lib/qt/lib/libqt-mt.so.3
#24 0xa7346c55 in QIconView::contentsContextMenuEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#25 0xa72892e5 in QScrollView::viewportContextMenuEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#26 0xa728b319 in QScrollView::eventFilter () from /usr/lib/qt/lib/libqt-mt.so.3
#27 0xa733e7ef in QIconView::eventFilter () from /usr/lib/qt/lib/libqt-mt.so.3
#28 0xa71670bf in QObject::activate_filters () from /usr/lib/qt/lib/libqt-mt.so.3
#29 0xa7167194 in QObject::event () from /usr/lib/qt/lib/libqt-mt.so.3
#30 0xa71a350f in QWidget::event () from /usr/lib/qt/lib/libqt-mt.so.3
#31 0xa710522f in QApplication::internalNotify () from /usr/lib/qt/lib/libqt-mt.so.3
#32 0xa710568e in QApplication::notify () from /usr/lib/qt/lib/libqt-mt.so.3
#33 0xa77749f5 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#34 0xa709f7a2 in QETWidget::translateMouseEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#35 0xa709d821 in QApplication::x11ProcessEvent () from /usr/lib/qt/lib/libqt-mt.so.3
#36 0xa70b0f25 in QEventLoop::processEvents () from /usr/lib/qt/lib/libqt-mt.so.3
#37 0xa711b951 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#38 0xa711b8a6 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#39 0xa710438f in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#40 0xa675e9ca in kdemain () from /opt/kde/lib/libkdeinit_kdesktop.so
#41 0xa76727e4 in kdeinitmain () from /opt/kde/lib/kde3/kdesktop.so
#42 0x0804e4b4 in ?? ()
#43 0x00000001 in ?? ()
#44 0x080ed980 in ?? ()
#45 0x00000001 in ?? ()
#46 0x00000000 in ?? ()

Maybe should I file this bug in the kopete section ?
Comment 3 jaguarwan 2006-06-06 00:45:33 UTC
Sorry, I just found out this bug is a duplicate of http://bugs.kde.org/show_bug.cgi?id=127749

I apologize for the inconvenience :(

Have a nice day.
Comment 4 jaguarwan 2006-06-07 19:05:48 UTC
http://bugs.kde.org/show_bug.cgi?id=127749 was fixed.
Comment 5 FiNeX 2009-01-02 20:32:40 UTC
Bug closed. Kdesktop is no more mantained.