Bug 164518 - kttsd segfaults from konqueror
Summary: kttsd segfaults from konqueror
Status: RESOLVED FIXED
Alias: None
Product: kttsd
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Gary Cramblitt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-20 13:37 UTC by Ian Chapman
Modified: 2009-05-24 18:53 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
konqueror crash log (1.44 KB, text/plain)
2008-12-27 09:07 UTC, Krisztián Kádár-Németh
Details
Do not register D-Bus object until we are ready() (1.70 KB, patch)
2009-05-24 08:38 UTC, Christoph Feck
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Chapman 2008-06-20 13:37:32 UTC
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
Comment 1 Dario Andres 2008-12-07 23:55:25 UTC
Have you experienced this bug again with a recent KDE version ( 4.1.3 / 4.2beta1 / 4.2svn)? Thanks :)
Comment 2 Jacek Piskozub 2008-12-17 13:19:09 UTC
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).
Comment 3 Krisztián Kádár-Németh 2008-12-27 09:07:14 UTC
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. :)
Comment 4 Christoph Feck 2009-05-24 08:38:04 UTC
Created attachment 33958 [details]
Do not register D-Bus object until we are ready()
Comment 5 Christoph Feck 2009-05-24 08:39:19 UTC
Dario, I am not sure if I got that D-Bus magic right, should we CC thiago?
Comment 6 Christoph Feck 2009-05-24 18:48:30 UTC
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
Comment 7 Christoph Feck 2009-05-24 18:53:07 UTC
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