Bug 152007 - OSD-related deadlock
Summary: OSD-related deadlock
Status: RESOLVED WORKSFORME
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Konversation Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-08 09:58 UTC by Juha Tuomala
Modified: 2008-06-01 14:28 UTC (History)
0 users

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 Juha Tuomala 2007-11-08 09:58:53 UTC
Version:           unknown (using KDE 3.5.8-7.fc8 Fedora, Fedora release 8 (Werewolf))
Compiler:          Target: x86_64-redhat-linux
OS:                Linux (x86_64) release 2.6.23.1-42.fc8

Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 46912498484704 (LWP 18758)]
[KCrash handler]
#5  0x0000003ac08cddf2 in select () from /lib64/libc.so.6
#6  0x00000034464b0c99 in QEventLoop::processEvents ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#7  0x000000344651a151 in QEventLoop::enterLoop ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#8  0x0000003446e18083 in DCOPClient::callInternal (this=0xaa0110, 
    remApp=<value optimized out>, remObjId=@0x7fffd5aa5d00, 
    remFun=<value optimized out>, data=<value optimized out>, 
    replyStruct=0x7fffd5aa5af0, useEventLoop=true, timeout=-1, minor_opcode=2)
    at dcopclient.cpp:1908
#9  0x0000003446e18309 in DCOPClient::callInternal (this=0xaa0110, 
    remApp=@0x7fffd5aa5d10, remObjId=@0x7fffd5aa5d00, remFun=@0x7fffd5aa5cf0, 
    data=@0x7fffd5aa5ce0, replyType=@0x7fffd5aa5cc0, 
    replyData=@0x7fffd5aa5cd0, useEventLoop=true, timeout=-1, minor_opcode=2)
    at dcopclient.cpp:1824
#10 0x0000003446e1c848 in DCOPClient::call (this=0xaa0110, 
    remApp=@0x7fffd5aa5d10, remObjId=@0x7fffd5aa5d00, remFun=@0x7fffd5aa5cf0, 
    data=@0x7fffd5aa5ce0, replyType=@0x7fffd5aa5cc0, 
    replyData=@0x7fffd5aa5cd0, useEventLoop=true, timeout=-1)
    at dcopclient.cpp:1768
#11 0x0000003446e1c873 in DCOPClient::call (this=0xe, remApp=@0xad2560, 
    remObjId=@0xad26e8, remFun=@0xffffffffffffffff, data=@0x3446cf6a10, 
    replyType=@0x0, replyData=@0x7fffd5aa5cd0, useEventLoop=true)
    at dcopclient.cpp:1733
#12 0x00000000004ea3d8 in OSDWidget::isKDesktopLockRunning () at osd.cpp:422
#13 0x00000000004eaae9 in OSDWidget::show (this=0xe) at osd.cpp:243
#14 0x00000000004e9efc in OSDWidget::showOSD (this=0xa9ece0, 
    text=<value optimized out>, preemptive=false) at osd.cpp:142
#15 0x000000000052c7eb in Konversation::NotificationHandler::nick (
    this=0xfe3600, chatWin=0x2aaab4005a80, fromNick=@0x7fffd5aa6180, 
    message=<value optimized out>) at notificationhandler.cpp:98
#16 0x00000000004a08a8 in InputFilter::parseClientCommand (
    this=<value optimized out>, prefix=<value optimized out>, 
    command=<value optimized out>, parameterList=@0x7fffd5aa6a80, 
    _trailing=<value optimized out>) at inputfilter.cpp:357
#17 0x00000000004ac3ce in InputFilter::parseLine (this=0xeef4c8, 
    a_newLine=<value optimized out>) at inputfilter.cpp:112
#18 0x00000000004d51b1 in Server::processIncomingData (this=0xeef180)
    at server.cpp:1024
#19 0x00000000004e390c in Server::qt_invoke (this=0xeef180, _id=54, 
    _o=0x7fffd5aa6ee0) at server.moc:874
#20 0x0000003446563a59 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#21 0x0000003446564730 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#22 0x0000003446587175 in QTimer::event ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#23 0x00000034465029a5 in QApplication::internalNotify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#24 0x0000003446503c70 in QApplication::notify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#25 0x00000034477c3678 in KApplication::notify (this=0x7fffd5aa75b0, 
    receiver=0xeef290, event=0x7fffd5aa7220) at kapplication.cpp:550
#26 0x00000034464f7bbc in QEventLoop::activateTimers ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#27 0x00000034464b0f01 in QEventLoop::processEvents ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#28 0x000000344651a151 in QEventLoop::enterLoop ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#29 0x000000344651a032 in QEventLoop::exec ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#30 0x00000000004e6fd8 in main (argc=7, argv=<value optimized out>)
    at main.cpp:109
#31 0x0000003ac081e074 in __libc_start_main () from /lib64/libc.so.6
#32 0x000000000043d8a9 in _start ()

Konversation 1.0.1 (Using KDE 3.5.8-7.fc8 Fedora)

I've disabled pulseaudio by removing its related kde pkgs. Got this trace with SIGABRT.

Could be related with bug 135544 although haven't detected any connection to cpu load, it just happens few times per day.
Comment 1 Juha Tuomala 2007-11-08 12:06:17 UTC
Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 46912496371120 (LWP 18230)]
[KCrash handler]
#5  0x0000003ac140d349 in read () from /lib64/libpthread.so.0
#6  0x0000003446e2bd8f in _kde_IceTransSocketRead (
    ciptr=<value optimized out>, buf=0xaa2410 "\002\001", size=8)
    at /usr/include/bits/unistd.h:45
#7  0x0000003446e25acb in _kde_IceRead (iceConn=0xaa22d0, 
    nbytes=<value optimized out>, ptr=0xaa2410 "\002\001") at misc.c:249
#8  0x0000003446e2a331 in KDE_IceProcessMessages (iceConn=0xaa22d0, 
    replyWait=0x7fff23114e20, replyReadyRet=0x7fff23114ecc) at process.c:153
#9  0x0000003446e1800a in DCOPClient::callInternal (this=0xaa0110, 
    remApp=<value optimized out>, remObjId=@0x7fff23115150, 
    remFun=<value optimized out>, data=@0x7fff23115110, 
    replyStruct=0x7fff23114f50, useEventLoop=false, timeout=-1, 
    minor_opcode=2) at dcopclient.cpp:1934
#10 0x0000003446e18309 in DCOPClient::callInternal (this=0xaa0110, 
    remApp=@0x7fff23115160, remObjId=@0x7fff23115150, remFun=@0x7fff23115140, 
    data=@0x7fff23115110, replyType=@0x7fff23115120, 
    replyData=@0x7fff23115100, useEventLoop=false, timeout=-1, minor_opcode=2)
    at dcopclient.cpp:1824
#11 0x0000003446e1c848 in DCOPClient::call (this=0xaa0110, 
    remApp=@0x7fff23115160, remObjId=@0x7fff23115150, remFun=@0x7fff23115140, 
    data=@0x7fff23115110, replyType=@0x7fff23115120, 
    replyData=@0x7fff23115100, useEventLoop=false, timeout=-1)
    at dcopclient.cpp:1768
#12 0x0000003446e1c873 in DCOPClient::call (this=0x3, remApp=@0xaa2410, 
    remObjId=@0x8, remFun=@0xffffffffffffffff, data=@0xaa0170, 
    replyType=@0x0, replyData=@0x7fff23115100, useEventLoop=false)
    at dcopclient.cpp:1733
#13 0x0000003446e1e51b in DCOPClient::isApplicationRegistered (this=0xaa0110, 
    remApp=<value optimized out>) at dcopclient.cpp:1228
#14 0x00000034477da5e7 in KNotifyClient::startDaemon ()
    at knotifyclient.cpp:228
#15 0x00000034477da963 in sendNotifyEvent (message=@0x7fff231153d0, 
    text=@0x7fff231153a0, present=-1, level=-1, sound=@0x840b70, 
    file=@0x840b70, winId=75497682) at knotifyclient.cpp:96
#16 0x00000034477dab76 in KNotifyClient::event (winId=<value optimized out>, 
    message=@0x0, text=@0xaa2410) at knotifyclient.cpp:153
#17 0x000000000052b5e8 in Konversation::NotificationHandler::message (
    this=0x1131fd0, chatWin=0x10a7af0, fromNick=@0x7fff23115570, 
    message=<value optimized out>) at notificationhandler.cpp:56
#18 0x00000000004a2425 in InputFilter::parseClientCommand (
    this=<value optimized out>, prefix=<value optimized out>, 
    command=<value optimized out>, parameterList=@0x7fff23115e70, 
    _trailing=<value optimized out>) at inputfilter.cpp:361
#19 0x00000000004ac3ce in InputFilter::parseLine (this=0xef05e8, 
    a_newLine=<value optimized out>) at inputfilter.cpp:112
#20 0x00000000004d51b1 in Server::processIncomingData (this=0xef02a0)
    at server.cpp:1024
#21 0x00000000004e390c in Server::qt_invoke (this=0xef02a0, _id=54, 
    _o=0x7fff231162d0) at server.moc:874
#22 0x0000003446563a59 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#23 0x0000003446564730 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#24 0x0000003446587175 in QTimer::event ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#25 0x00000034465029a5 in QApplication::internalNotify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#26 0x0000003446503c70 in QApplication::notify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#27 0x00000034477c3678 in KApplication::notify (this=0x7fff231184a0, 
    receiver=0xef03b0, event=0x7fff23116610) at kapplication.cpp:550
#28 0x00000034464f7bbc in QEventLoop::activateTimers ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#29 0x00000034464b0f01 in QEventLoop::processEvents ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#30 0x000000344651a151 in QEventLoop::enterLoop ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#31 0x0000003446e18083 in DCOPClient::callInternal (this=0xaa0110, 
    remApp=<value optimized out>, remObjId=@0x7fff23116c70, 
    remFun=<value optimized out>, data=<value optimized out>, 
    replyStruct=0x7fff23116a60, useEventLoop=true, timeout=-1, minor_opcode=2)
    at dcopclient.cpp:1908
#32 0x0000003446e18309 in DCOPClient::callInternal (this=0xaa0110, 
    remApp=@0x7fff23116c80, remObjId=@0x7fff23116c70, remFun=@0x7fff23116c60, 
    data=@0x7fff23116c50, replyType=@0x7fff23116c30, 
    replyData=@0x7fff23116c40, useEventLoop=true, timeout=-1, minor_opcode=2)
    at dcopclient.cpp:1824
#33 0x0000003446e1c848 in DCOPClient::call (this=0xaa0110, 
    remApp=@0x7fff23116c80, remObjId=@0x7fff23116c70, remFun=@0x7fff23116c60, 
    data=@0x7fff23116c50, replyType=@0x7fff23116c30, 
    replyData=@0x7fff23116c40, useEventLoop=true, timeout=-1)
    at dcopclient.cpp:1768
#34 0x0000003446e1c873 in DCOPClient::call (this=0x3, remApp=@0xaa2410, 
    remObjId=@0x8, remFun=@0xffffffffffffffff, data=@0xaa0170, 
    replyType=@0x0, replyData=@0x7fff23116c40, useEventLoop=true)
    at dcopclient.cpp:1733
#35 0x00000000004ea3d8 in OSDWidget::isKDesktopLockRunning () at osd.cpp:422
#36 0x00000000004eaae9 in OSDWidget::show (this=0x3) at osd.cpp:243
#37 0x00000000004e9efc in OSDWidget::showOSD (this=0xa9ece0, 
    text=<value optimized out>, preemptive=false) at osd.cpp:142
#38 0x000000000052c43f in Konversation::NotificationHandler::join (
    this=<value optimized out>, chatWin=0xe42000, nick=@0x7fff23117070)
    at notificationhandler.cpp:148
#39 0x00000000004a0bfd in InputFilter::parseClientCommand (
    this=0x2aaab4086278, prefix=@0x7fff23117990, command=@0x7fff23117980, 
    parameterList=@0x7fff23117970, _trailing=@0x7fff231179b0)
    at inputfilter.cpp:511
#40 0x00000000004ac3ce in InputFilter::parseLine (this=0x2aaab4086278, 
    a_newLine=<value optimized out>) at inputfilter.cpp:112
#41 0x00000000004d51b1 in Server::processIncomingData (this=0x2aaab4085f30)
    at server.cpp:1024
#42 0x00000000004e390c in Server::qt_invoke (this=0x2aaab4085f30, _id=54, 
    _o=0x7fff23117dd0) at server.moc:874
#43 0x0000003446563a59 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#44 0x0000003446564730 in QObject::activate_signal ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#45 0x0000003446587175 in QTimer::event ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#46 0x00000034465029a5 in QApplication::internalNotify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#47 0x0000003446503c70 in QApplication::notify ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#48 0x00000034477c3678 in KApplication::notify (this=0x7fff231184a0, 
    receiver=0x2aaab4086040, event=0x7fff23118110) at kapplication.cpp:550
#49 0x00000034464f7bbc in QEventLoop::activateTimers ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#50 0x00000034464b0f01 in QEventLoop::processEvents ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#51 0x000000344651a151 in QEventLoop::enterLoop ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#52 0x000000344651a032 in QEventLoop::exec ()
   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
#53 0x00000000004e6fd8 in main (argc=7, argv=<value optimized out>)
    at main.cpp:109
#54 0x0000003ac081e074 in __libc_start_main () from /lib64/libc.so.6
#55 0x000000000043d8a9 in _start ()


How reproducible? Not when you want it but frequently. :)
Comment 2 Juha Tuomala 2007-11-22 09:23:04 UTC
After I disabled onscreen display, it stopped crashing. Need to make further tests with it but wouldn't be surprised that it was the cause.
Comment 3 Juha Tuomala 2007-11-22 09:23:45 UTC
I guess i should have used wording 'hanging' instead of 'crashing'.
Comment 4 Juha Tuomala 2007-11-25 19:34:53 UTC
Okay, I've been running it days osd off without hanging, then today switched it on and now at evening it was hang again.
Comment 5 Eike Hein 2008-06-01 14:08:24 UTC
Reading the traces, the problem seems related to DCOP, which is KDE's IPC mechanism that the OSD uses to check whether the desktop is locked or the screensaver is running before displaying itself. I guess it locks up somewhere in there for you. That may be an environmental issue impacting the DCOP bus in some way.

As a workaround for your setup, you could try adding 'OSDCheckDesktopLock=false' to the '[OSD]' group in your Konversation config file (~/.kde/share/config/konversationrc), which disables the check. 

It would also be of great interest to us if you could try out the SVN version of Konvi* to see if you still have that problem there even and especially with the check still enabled, since the code has changed somewhat and the problem might be fixed now.

* = http://konversation.kde.org/wiki/SVN
Comment 6 Juha Tuomala 2008-06-01 14:28:14 UTC
Well, I've now 3.5.9 and seems that OSD has been on for a quite a while
and there are no hangs anymore. It has been fixed at some point.

Anyway, thank you for your attention for this bug.