Bug 251832 - Font Installer crashes after repeatedly pressing escape
Summary: Font Installer crashes after repeatedly pressing escape
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_fontinst (show other bugs)
Version: 1.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Craig Drummond
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-20 17:38 UTC by Andy
Modified: 2011-06-25 09:57 UTC (History)
1 user (show)

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 Andy 2010-09-20 17:38:23 UTC
Application: systemsettings (1.0)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-21-generic i686
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
As Font Installer asks me authentication password for each font I want to install (I selected like 900+ fonts) I pressed Esc repeatedly to stop asking me the password and it crashed.

The crash can be reproduced every time.

 -- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
[Current thread is 1 (Thread 0xb774b710 (LWP 13124))]

Thread 2 (Thread 0xb4f3ab70 (LWP 13125)):
#0  0x00dc0422 in __kernel_vsyscall ()
#1  0x00acbb86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2  0x00e0d4eb in g_poll () from /lib/libglib-2.0.so.0
#3  0x00e000ac in ?? () from /lib/libglib-2.0.so.0
#4  0x00e004b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0x03acf60f in QEventDispatcherGlib::processEvents (this=0x968ffc0, flags=...) at kernel/qeventdispatcher_glib.cpp:414
#6  0x03aa2059 in QEventLoop::processEvents (this=0xb4f3a290, flags=) at kernel/qeventloop.cpp:149
#7  0x03aa24aa in QEventLoop::exec (this=0xb4f3a290, flags=...) at kernel/qeventloop.cpp:201
#8  0x0399e5a8 in QThread::exec (this=0x98e12d0) at thread/qthread.cpp:487
#9  0x03a81c1b in QInotifyFileSystemWatcherEngine::run (this=0x98e12d0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x039a132e in QThreadPrivate::start (arg=0x98e12d0) at thread/qthread_unix.cpp:248
#11 0x0030796e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#12 0x00ad9a4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb774b710 (LWP 13124)):
[KCrash Handler]
#6  0x00a7bea9 in free () from /lib/tls/i686/cmov/libc.so.6
#7  0x001cb741 in operator delete(void*) () from /usr/lib/libstdc++.so.6
#8  0x029064b7 in ~CJobRunner (this=0xb633c0, __in_chrg=<value optimized out>) at ../../../../kcontrol/kfontinst/kcmfontinst/JobRunner.cpp:218
#9  0x03ab318f in QObjectPrivate::deleteChildren (this=0x992cf98) at kernel/qobject.cpp:1986
#10 0x0118d3d3 in ~QWidget (this=0x992cf00, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1469
#11 0x008fa37e in ~KCModule (this=0x992cf00, __in_chrg=<value optimized out>) at ../../kdeui/widgets/kcmodule.cpp:188
#12 0x0293187d in ~CKCmFontInst (this=0x992cf00, __in_chrg=<value optimized out>) at ../../../../kcontrol/kfontinst/kcmfontinst/KCmFontInst.cpp:419
#13 0x00375e5c in KCModuleProxy::deleteClient (this=0x97b6a30) at ../../kutils/kcmoduleproxy.cpp:219
#14 0x00377c55 in ~KCModuleProxy (this=0x97b6a30, __in_chrg=<value optimized out>) at ../../kutils/kcmoduleproxy.cpp:210
#15 0x03ab318f in QObjectPrivate::deleteChildren (this=0x98eff00) at kernel/qobject.cpp:1986
#16 0x0118c873 in ~QWidget (this=0x97b6c90, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1469
#17 0x03ab318f in QObjectPrivate::deleteChildren (this=0x992a8b8) at kernel/qobject.cpp:1986
#18 0x0118d3d3 in ~QWidget (this=0x97b6c78, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1469
#19 0x015822d1 in ~QFrame (this=0x97b6c78, __in_chrg=<value optimized out>) at widgets/qframe.cpp:242
#20 0x0161e114 in ~QAbstractScrollArea (this=0x97b6c78, __in_chrg=<value optimized out>) at widgets/qabstractscrollarea.cpp:524
#21 0x01622555 in ~QScrollArea (this=0x97b6c78, __in_chrg=<value optimized out>) at widgets/qscrollarea.cpp:176
#22 0x0087ecd4 in ~Private (this=0x95f57e8, __in_chrg=<value optimized out>) at ../../kdeui/paged/kpagewidgetmodel.cpp:40
#23 ~KPageWidgetItem (this=0x95f57e8, __in_chrg=<value optimized out>) at ../../kdeui/paged/kpagewidgetmodel.cpp:84
#24 0x0087e1c5 in ~PageItem (this=0x9615c90, __in_chrg=<value optimized out>) at ../../kdeui/paged/kpagewidgetmodel.cpp:174
#25 0x0087eb97 in KPageWidgetModel::removePage (this=0x9840e00, item=0x95f57e8) at ../../kdeui/paged/kpagewidgetmodel.cpp:481
#26 0x0087cb5e in KPageWidget::removePage (this=0x983ebe8, item=0x95f57e8) at ../../kdeui/paged/kpagewidget.cpp:113
#27 0x00fe8f98 in ModuleView::closeModules (this=0x983ebc8) at ../../../systemsettings/core/ModuleView.cpp:283
#28 0x065a0f3f in IconMode::backToOverview (this=0x983b7a8) at ../../../systemsettings/icons/IconMode.cpp:153
#29 0x065a1753 in IconMode::qt_metacall (this=0x983b7a8, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0xbfc35f7c) at ./IconMode.moc:82
#30 0x03aa8c9a in QMetaObject::metacall (object=0x983b7a8, cl=169906432, idx=14, argv=0xbfc35f7c) at kernel/qmetaobject.cpp:237
#31 0x03ab73d5 in QMetaObject::activate (sender=0x983ebc8, m=0xff0b3c, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3293
#32 0x00fe8d67 in ModuleView::closeRequest (this=0x983ebc8) at ./ModuleView.moc:119
#33 0x00fe8ed4 in ModuleView::keyPressEvent (this=0x983ebc8, event=0xbfc36584) at ../../../systemsettings/core/ModuleView.cpp:383
#34 0x01185503 in QWidget::event (this=0x983ebc8, event=0xbfc36584) at kernel/qwidget.cpp:8033
#35 0x011274dc in QApplicationPrivate::notify_helper (this=0x95fd130, receiver=0x983ebc8, e=0xbfc36584) at kernel/qapplication.cpp:4300
#36 0x0112fb71 in QApplication::notify (this=0xbfc3925c, receiver=0x983ebc8, e=0xbfc36584) at kernel/qapplication.cpp:3763
#37 0x00834f2a in KApplication::notify (this=0xbfc3925c, receiver=0x9604c68, event=0xbfc36584) at ../../kdeui/kernel/kapplication.cpp:302
#38 0x03aa3a3b in QCoreApplication::notifyInternal (this=0xbfc3925c, receiver=0x9604c68, event=0xbfc36584) at kernel/qcoreapplication.cpp:704
#39 0x011282be in QCoreApplication::sendSpontaneousEvent (receiver=0x9604c68, event=0xbfc37e88) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#40 qt_sendSpontaneousEvent (receiver=0x9604c68, event=0xbfc37e88) at kernel/qapplication.cpp:5279
#41 0x011e1d90 in QKeyMapper::sendKeyEvent (keyWidget=0x9604c68, grab=false, type=QEvent::KeyPress, code=16777216, modifiers=..., text=..., autorepeat=<value optimized out>, 
    count=<value optimized out>, nativeScanCode=9, nativeVirtualKey=65307, nativeModifiers=16) at kernel/qkeymapper_x11.cpp:1861
#42 0x011e42f5 in QKeyMapperPrivate::translateKeyEvent (this=0x9628b50, keyWidget=0x9604c68, event=0xbfc36c4c, grab=false) at kernel/qkeymapper_x11.cpp:1831
#43 0x011b7757 in QApplication::x11ProcessEvent (this=0xbfc3925c, event=0xbfc36c4c) at kernel/qapplication_x11.cpp:3394
#44 0x011e760a in x11EventSourceDispatch (s=0x9600168, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#45 0x00dfc5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#46 0x00e002d8 in ?? () from /lib/libglib-2.0.so.0
#47 0x00e004b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#48 0x03acf5d5 in QEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#49 0x011e7135 in QGuiEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#50 0x03aa2059 in QEventLoop::processEvents (this=0x9c496c0, flags=) at kernel/qeventloop.cpp:149
#51 0x03aa24aa in QEventLoop::exec (this=0x9c496c0, flags=...) at kernel/qeventloop.cpp:201
#52 0x0290a142 in KFI::CJobRunner::setPage (this=0xbfc37e90, page=3, msg=...) at ../../../../kcontrol/kfontinst/kcmfontinst/JobRunner.cpp:606
#53 0x0290aa3f in KFI::CJobRunner::dbusStatus (this=0xbfc37e90, pid=13124, status=146) at ../../../../kcontrol/kfontinst/kcmfontinst/JobRunner.cpp:432
#54 0x0290bdf8 in KFI::CJobRunner::qt_metacall (this=0xbfc37e90, _c=QMetaObject::InvokeMetaMethod, _id=77, _a=0xbfc37154) at ./JobRunner.moc:87
#55 0x03aa8c9a in QMetaObject::metacall (object=0xbfc37e90, cl=169906432, idx=77, argv=0xbfc37154) at kernel/qmetaobject.cpp:237
#56 0x03ab73d5 in QMetaObject::activate (sender=0x96138c8, m=0x29586a8, local_signal_index=4, argv=0xbfc37154) at kernel/qobject.cpp:3293
#57 0x0290e9b9 in OrgKdeFontinstInterface::status (this=0x96138c8, _t1=13124, _t2=146) at ./FontinstIface.moc:167
#58 0x0290f075 in OrgKdeFontinstInterface::qt_metacall (this=0x96138c8, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfc3756c) at ./FontinstIface.moc:115
#59 0x00bc8b34 in QDBusConnectionPrivate::deliverCall (this=0x95f79e0, object=0x96138c8, msg=..., metaTypes=..., slotIdx=9) at qdbusintegrator.cpp:904
#60 0x00bd3ea7 in QDBusCallDeliveryEvent::placeMetaCall (this=0xa190b20, object=0x96138c8) at qdbusintegrator_p.h:101
#61 0x03ab43fe in QObject::event (this=0x96138c8, e=0xa190b20) at kernel/qobject.cpp:1248
#62 0x011274dc in QApplicationPrivate::notify_helper (this=0x95fd130, receiver=0x96138c8, e=0xa190b20) at kernel/qapplication.cpp:4300
#63 0x0112e05e in QApplication::notify (this=0xbfc3925c, receiver=0x96138c8, e=0xa190b20) at kernel/qapplication.cpp:3704
#64 0x00834f2a in KApplication::notify (this=0xbfc3925c, receiver=0x96138c8, event=0xa190b20) at ../../kdeui/kernel/kapplication.cpp:302
#65 0x03aa3a3b in QCoreApplication::notifyInternal (this=0xbfc3925c, receiver=0x96138c8, event=0xa190b20) at kernel/qcoreapplication.cpp:704
#66 0x03aa6473 in QCoreApplication::sendEvent (receiver=0x0, event_type=0, data=0x95dd2c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#67 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x95dd2c0) at kernel/qcoreapplication.cpp:1345
#68 0x03aa65dd in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1238
#69 0x03acfadf in QCoreApplication::sendPostedEvents (s=0x95ff310) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#70 postEventSourceDispatch (s=0x95ff310) at kernel/qeventdispatcher_glib.cpp:276
#71 0x00dfc5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#72 0x00e002d8 in ?? () from /lib/libglib-2.0.so.0
#73 0x00e004b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#74 0x03acf5d5 in QEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#75 0x011e7135 in QGuiEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#76 0x03aa2059 in QEventLoop::processEvents (this=0xbfc37d90, flags=) at kernel/qeventloop.cpp:149
#77 0x03aa24aa in QEventLoop::exec (this=0xbfc37d90, flags=...) at kernel/qeventloop.cpp:201
#78 0x016664f3 in QDialog::exec (this=0xbfc37e90) at dialogs/qdialog.cpp:546
#79 0x0290c11a in KFI::CJobRunner::exec (this=0xbfc37e90, cmd=KFI::CJobRunner::CMD_INSTALL, urls=..., destIsSystem=true) at ../../../../kcontrol/kfontinst/kcmfontinst/JobRunner.cpp:316
#80 0x02934d74 in KFI::CKCmFontInst::doCmd (this=0x992cf00, cmd=KFI::CJobRunner::CMD_INSTALL, urls=..., system=<value optimized out>)
    at ../../../../kcontrol/kfontinst/kcmfontinst/KCmFontInst.cpp:1216
#81 0x0293697e in KFI::CKCmFontInst::addFonts (this=0x992cf00, src=...) at ../../../../kcontrol/kfontinst/kcmfontinst/KCmFontInst.cpp:1068
#82 0x02937938 in KFI::CKCmFontInst::addFonts (this=0x992cf00) at ../../../../kcontrol/kfontinst/kcmfontinst/KCmFontInst.cpp:511
#83 0x0293fde6 in KFI::CKCmFontInst::qt_metacall (this=0x992cf00, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfc38268) at ./KCmFontInst.moc:111
#84 0x03aa8c9a in QMetaObject::metacall (object=0x992cf00, cl=169906432, idx=40, argv=0xbfc38268) at kernel/qmetaobject.cpp:237
#85 0x03ab73d5 in QMetaObject::activate (sender=0x9604c68, m=0x1a628c4, local_signal_index=2, argv=0xbfc38268) at kernel/qobject.cpp:3293
#86 0x01852479 in QAbstractButton::clicked (this=0x9604c68, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#87 0x01531ea9 in QAbstractButtonPrivate::emitClicked (this=0x97ae098) at widgets/qabstractbutton.cpp:546
#88 0x01532cf4 in QAbstractButtonPrivate::click (this=0x97ae098) at widgets/qabstractbutton.cpp:539
#89 0x01532fae in QAbstractButton::mouseReleaseEvent (this=0x9604c68, e=0xbfc389a0) at widgets/qabstractbutton.cpp:1121
#90 0x011857f8 in QWidget::event (this=0x9604c68, event=0xbfc389a0) at kernel/qwidget.cpp:7998
#91 0x01531d4e in QAbstractButton::event (this=0x9604c68, e=0xbfc37e88) at widgets/qabstractbutton.cpp:1080
#92 0x015dc1f2 in QPushButton::event (this=0x9604c68, e=0xbfc389a0) at widgets/qpushbutton.cpp:679
#93 0x011274dc in QApplicationPrivate::notify_helper (this=0x95fd130, receiver=0x9604c68, e=0xbfc389a0) at kernel/qapplication.cpp:4300
#94 0x0112e9f7 in QApplication::notify (this=0xbfc3925c, receiver=0x9604c68, e=0xbfc389a0) at kernel/qapplication.cpp:3865
#95 0x00834f2a in KApplication::notify (this=0xbfc3925c, receiver=0x9604c68, event=0xbfc389a0) at ../../kdeui/kernel/kapplication.cpp:302
#96 0x03aa3a3b in QCoreApplication::notifyInternal (this=0xbfc3925c, receiver=0x9604c68, event=0xbfc389a0) at kernel/qcoreapplication.cpp:704
#97 0x0112d952 in QCoreApplication::sendEvent (receiver=0x9604c68, event=0xbfc389a0, alienWidget=0x9604c68, nativeWidget=0x967e9b0, buttonDown=0x1a6b058, lastMouseReceiver=..., spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#98 QApplicationPrivate::sendMouseEvent (receiver=0x9604c68, event=0xbfc389a0, alienWidget=0x9604c68, nativeWidget=0x967e9b0, buttonDown=0x1a6b058, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2965
#99 0x011b9088 in QETWidget::translateMouseEvent (this=0x967e9b0, event=0xbfc38ebc) at kernel/qapplication_x11.cpp:4368
#100 0x011b8511 in QApplication::x11ProcessEvent (this=0xbfc3925c, event=0xbfc38ebc) at kernel/qapplication_x11.cpp:3379
#101 0x011e760a in x11EventSourceDispatch (s=0x9600168, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#102 0x00dfc5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#103 0x00e002d8 in ?? () from /lib/libglib-2.0.so.0
#104 0x00e004b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#105 0x03acf5d5 in QEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#106 0x011e7135 in QGuiEventDispatcherGlib::processEvents (this=0x95dd4a0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#107 0x03aa2059 in QEventLoop::processEvents (this=0xbfc391b4, flags=) at kernel/qeventloop.cpp:149
#108 0x03aa24aa in QEventLoop::exec (this=0xbfc391b4, flags=...) at kernel/qeventloop.cpp:201
#109 0x03aa669f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#110 0x01127577 in QApplication::exec () at kernel/qapplication.cpp:3579
#111 0x08056b5e in main (argc=5, argv=0xbfc393a4) at ../../../systemsettings/app/main.cpp:49

Reported using DrKonqi
Comment 1 Christoph Feck 2010-09-20 18:48:44 UTC
Caused by KFI::CJobRunner::exec() spawning a nested event loop, which allows the user to manipulate the UI. During exec() a modal progress dialog should be shown, or the nested event loop avoided.
Comment 2 Craig Drummond 2011-06-24 17:07:59 UTC
Git commit cb3fd3ec3ef6ee2831743559f0221781037a3c1a by Craig Drummond.
Committed on 24/06/2011 at 18:37.
Pushed by craig into branch 'KDE/4.6'.

Dont spwan a nested QEventLoop - not really required.
BUG:251832

M  +45   -53   kcontrol/kfontinst/kcmfontinst/JobRunner.cpp     
M  +2    -3    kcontrol/kfontinst/kcmfontinst/JobRunner.h     

http://commits.kde.org/kde-workspace/cb3fd3ec3ef6ee2831743559f0221781037a3c1a
Comment 3 Craig Drummond 2011-06-24 17:08:00 UTC
Git commit 36ab80448a78a65e58390cb7db0624cd344f6da7 by Craig Drummond.
Committed on 24/06/2011 at 18:40.
Pushed by craig into branch 'master'.

Dont spwan a nested QEventLoop - not really required.
BUG:251832

M  +50   -55   kcontrol/kfontinst/kcmfontinst/JobRunner.cpp     
M  +2    -3    kcontrol/kfontinst/kcmfontinst/JobRunner.h     

http://commits.kde.org/kde-workspace/36ab80448a78a65e58390cb7db0624cd344f6da7
Comment 4 Christoph Feck 2011-06-25 07:03:38 UTC
Thanks. Since 4.7 is branched, it might make sense to also backport to KDE/4.7.
Comment 5 Craig Drummond 2011-06-25 09:56:55 UTC
Git commit bbc2b5f86a0e3501759309deb82382e61d057307 by Craig Drummond.
Committed on 25/06/2011 at 11:52.
Pushed by craig into branch 'KDE/4.7'.

Dont spwan a nested QEventLoop - not really required.
BUG:251832

M  +50   -55   kcontrol/kfontinst/kcmfontinst/JobRunner.cpp     
M  +2    -3    kcontrol/kfontinst/kcmfontinst/JobRunner.h     

http://commits.kde.org/kde-workspace/bbc2b5f86a0e3501759309deb82382e61d057307
Comment 6 Craig Drummond 2011-06-25 09:57:45 UTC
> --- Comment #4 from Christoph Feck <christoph maxiom de>  2011-06-25
> 07:03:38 --- Thanks. Since 4.7 is branched, it might make sense to also
> backport to KDE/4.7.

Thanks for the reminder!! I've just 'pushed' the change.