Version: (using KDE 4.0.5) Installed from: Fedora RPMs Compiler: gcc 4.3.0 OS: Linux When selecting "Speak Text" from the tools menu in konqueror, a dialog box opens which says: "The DBUS call StartText failed." Then kttsd segfaults. This is on ppc32, I do not know if it occurs on i386 or x86_64. (Fedora BZ number: 451568) Backtrace from KCrash: [Thread debugging using libthread_db enabled] [New Thread 0x4828a7d0 (LWP 5442)] [KCrash handler] #5 SpeechData::getAppData (this=0x0, appId=@0xbffb928c) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/speechdata.cpp:166 #6 0x10008170 in KSpeech::defaultTalker (this=<value optimized out>) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/kspeech.cpp:148 #7 0x10009724 in KSpeech::qt_metacall (this=0x100ccee8, _c=<value optimized out>, _id=8, _a=0xbffb9330) at /usr/src/debug/kdeaccessibility-4.0.5/ppc-redhat-linux-gnu/kttsd/kttsd/kspeech.moc:176 #8 0x0f72db80 in QMetaObject::invokeMethod (obj=<value optimized out>, member=<value optimized out>, type=<value optimized out>, ret= {<QGenericArgument> = {_data = 0xbffb96fc, _name = 0x0}, <No data fields>}, val0=<value optimized out>, val1=<value optimized out>, val2=<value optimized out>, val3=<value optimized out>, val4=<value optimized out>, val5=<value optimized out>, val6=<value optimized out>, val7=<value optimized out>, val8=<value optimized out>, val9=<value optimized out>) at kernel/qmetaobject.cpp:997 #9 0x1002d4f0 in KSpeechAdaptor::defaultTalker (this=0x100ccf60, msg=<value optimized out>) at /usr/include/QtCore/qobjectdefs.h:351 #10 0x1002dfb8 in KSpeechAdaptor::qt_metacall (this=0x100ccf60, _c=<value optimized out>, _id=8, _a=0xbffb97f8) at /usr/src/debug/kdeaccessibility-4.0.5/ppc-redhat-linux-gnu/kttsd/kttsd/kspeechadaptor_p.moc:292 #11 0x0f1effac in QDBusConnectionPrivate::deliverCall ( this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=<value optimized out>, slotIdx=<value optimized out>) at qdbusintegrator.cpp:844 #12 0x0f1f1260 in QDBusConnectionPrivate::activateCall ( this=<value optimized out>, object=<value optimized out>, flags=<value optimized out>, msg=<value optimized out>) at qdbusintegrator.cpp:749 #13 0x0f1f16d4 in QDBusConnectionPrivate::activateObject ( this=<value optimized out>, node=<value optimized out>, msg=<value optimized out>, pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1295 #14 0x0f1f1c6c in QDBusActivateObjectEvent::placeMetaCall ( this=<value optimized out>) at qdbusintegrator.cpp:1389 #15 0x0f739690 in QObject::event (this=<value optimized out>, e=<value optimized out>) at kernel/qobject.cpp:1135 #16 0x00a2dd54 in QApplicationPrivate::notify_helper ( this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>) at kernel/qapplication.cpp:3563 #17 0x00a35da0 in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>) at kernel/qapplication.cpp:3504 #18 0x017362ac in KApplication::notify (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at /usr/src/debug/kdelibs-4.0.5/kdeui/kernel/kapplication.cpp:314 #19 0x0f723b7c in QCoreApplication::notifyInternal ( this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at kernel/qcoreapplication.cpp:537 #20 0x0f7265c0 in QCoreApplicationPrivate::sendPostedEvents ( receiver=<value optimized out>, event_type=<value optimized out>, data=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:207 #21 0x0f726834 in QCoreApplication::sendPostedEvents ( receiver=<value optimized out>, event_type=<value optimized out>) at kernel/qcoreapplication.cpp:1009 #22 0x0f750220 in postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:214 #23 0x0ee556ac in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2009 #24 0x0ee59e78 in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2642 #25 0x0ee5a138 in IA__g_main_context_iteration ( context=<value optimized out>, may_block=<value optimized out>) at gmain.c:2705 #26 0x0f74fc70 in QEventDispatcherGlib::processEvents ( this=<value optimized out>, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:345 #27 0x00ac0050 in QGuiEventDispatcherGlib::processEvents ( this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198 #28 0x0f722034 in QEventLoop::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventloop.cpp:147 #29 0x0f7222f8 in QEventLoop::exec (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventloop.cpp:189 #30 0x00e4a75c in QDialog::exec (this=<value optimized out>) at dialogs/qdialog.cpp:440 #31 0x016b82f8 in KMessageBox::createKMessageBox ( dialog=<value optimized out>, icon=<value optimized out>, text=<value optimized out>, strlist=<value optimized out>, ask=<value optimized out>, checkboxReturn=<value optimized out>, options=<value optimized out>, details=<value optimized out>, notifyType=) at /usr/src/debug/kdelibs-4.0.5/kdeui/dialogs/kmessagebox.cpp:289 #32 0x016b90a8 in KMessageBox::createKMessageBox ( dialog=<value optimized out>, icon=<value optimized out>, text=<value optimized out>, strlist=<value optimized out>, ask=<value optimized out>, checkboxReturn=<value optimized out>, options=<value optimized out>, details=<value optimized out>) at /usr/src/debug/kdelibs-4.0.5/kdeui/dialogs/kmessagebox.cpp:161 #33 0x016bb8dc in KMessageBox::questionYesNoListWId ( parent_id=<value optimized out>, text=<value optimized out>, strlist=<value optimized out>, caption=<value optimized out>, buttonYes_=<value optimized out>, buttonNo_=<value optimized out>, dontAskAgainName=<value optimized out>, options=<value optimized out>) at /usr/src/debug/kdelibs-4.0.5/kdeui/dialogs/kmessagebox.cpp:434 #34 0x016bbac8 in KMessageBox::questionYesNoList ( parent=<value optimized out>, text=<value optimized out>, strlist=<value optimized out>, caption=<value optimized out>, buttonYes=<value optimized out>, buttonNo=<value optimized out>, dontAskAgainName=<value optimized out>, options=<value optimized out>) at /usr/src/debug/kdelibs-4.0.5/kdeui/dialogs/kmessagebox.cpp:391 #35 0x016bbb84 in KMessageBox::questionYesNo (parent=<value optimized out>, text=<value optimized out>, caption=<value optimized out>, buttonYes=<value optimized out>, buttonNo=<value optimized out>, dontAskAgainName=<value optimized out>, options=<value optimized out>) at /usr/src/debug/kdelibs-4.0.5/kdeui/dialogs/kmessagebox.cpp:306 #36 0x10007568 in KSpeech::initializeTalkerMgr (this=0x100ccee8) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/kspeech.cpp:512 #37 0x10007738 in KSpeech::ready (this=0x100ccee8) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/kspeech.cpp:446 #38 0x1000855c in KSpeech (this=0x100ccee8, parent=<value optimized out>) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/kspeech.cpp:113 #39 0x100064cc in main (argc=1, argv=0xbffba7b4) at /usr/src/debug/kdeaccessibility-4.0.5/kttsd/kttsd/main.cpp:66
Have you experienced this bug again with a recent KDE version ( 4.1.3 / 4.2beta1 / 4.2svn)? Thanks :)
See bug 177313, an almost certain dup of this one (there the bug is in Okular, not Konqueror, but the stack trace looks the same to me).
Created attachment 29664 [details] konqueror crash log I experience exactly the same error with KDE 4.1.3. The "a say () D-bus call was not successful" error message is shown in konqueror, but this is not mentioned in the crash log. :)
Created attachment 33958 [details] Do not register D-Bus object until we are ready()
Dario, I am not sure if I got that D-Bus magic right, should we CC thiago?
SVN commit 972345 by cfeck: Fix D-Bus related crash in kttsd The problem was that kttsd registered its D-Bus /KSpeech object as soon as the application started, without making sure that the daemon is fully initialized. When during initialization of the daemon a KMessageBox is put up (asking the user if he wants to add talkers to make speech work), that message box tries to connect to the speech daemon via a D-Bus call. We now delay the registration of the object until we are fully initialized. The other option was to entirely remove the message box (which is bad, as the user may want to know what he needs to do to get speech work), or make the message box non-modal, which I found too complicated... BUG: 164518 M +10 -6 kspeech.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=972345
SVN commit 972347 by cfeck: Fix D-Bus related crash in kttsd (backport r972345) CCBUG: 164518 M +10 -6 kspeech.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=972347