Bug 200665

Summary: (steps) SystemSetting crashes after going to Keyboard/Standard shortcuts and pressing Overview(back)
Product: [Applications] systemsettings Reporter: Dario Andres <andresbajotierra>
Component: generalAssignee: System Settings Bugs <sourtooth+ssbugs>
Status: RESOLVED FIXED    
Severity: crash CC: finex
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Dario Andres 2009-07-18 16:17:16 UTC
Application that crashed: systemsettings
Version of the application: 1.0
KDE Version: 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090706))
Qt Version: 4.5.2
Operating System: Linux 2.6.30-ARCH i686

What I was doing when the application crashed:
Steps from https://bugs.kde.org/show_bug.cgi?id=199830#c2 :

1. Open 'System settings'.
2. Select 'Keyboard and mouse'.
3. Select 'Standart keyboard shortcuts'.
4. Press 'Overview' (back) button.

System Setting crashes

Here using:

Qt: 4.5.2 (KDE-Qt git commit 46a247a2c9a8c0c4456a02f6a0922d859d88fe76
        Date:   Fri Jun 26 13:45:37 2009 +0200)
KDE: 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090706))
kdelibs svn rev. 997539 / kdebase svn rev. 997539
on ArchLinux i686 - Kernel 2.6.30.1

 -- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
[KCrash Handler]
#6  0xb6cbf6c5 in QObject::parent (this=0x86e2b10) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:243
#7  0xb6ccf247 in QWidget::parentWidget (this=0x86e2b10) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:988
#8  0xb6d2ca38 in QWidgetPrivate::hide_helper (this=0x8867860) at kernel/qwidget.cpp:6858
#9  0xb6d2d181 in QWidget::setVisible (this=0x86ac730, visible=false) at kernel/qwidget.cpp:7012
#10 0xb6d0e9de in QWidget::hide (this=0x86ac730) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:477
#11 0xb6d0e104 in QStackedLayout::setCurrentIndex (this=0x8867770, index=0) at kernel/qstackedlayout.cpp:308
#12 0xb6d0e2eb in QStackedLayout::setCurrentWidget (this=0x8867770, widget=0x886ad78) at kernel/qstackedlayout.cpp:367
#13 0xb71d2cde in QStackedWidget::setCurrentWidget (this=0x86ac840, widget=0x886ad78) at widgets/qstackedwidget.cpp:248
#14 0xb3992075 in IconMode::backToOverview (this=0x86aea80) at /home/kde-devel/kde/src/KDE/kdebase/workspace/systemsettings/icons/IconMode.cpp:153
#15 0xb3992973 in IconMode::qt_metacall (this=0x86aea80, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0xbfba7628)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/systemsettings/icons/IconMode.moc:76
#16 0xb6752892 in QMetaObject::activate (sender=0x86af3a0, from_signal_index=5, to_signal_index=6, argv=0xbfba7628) at kernel/qobject.cpp:3112
#17 0xb6752cd5 in QMetaObject::activate (sender=0x86af3a0, m=0xb7689108, from_local_signal_index=1, to_local_signal_index=2, argv=0xbfba7628) at kernel/qobject.cpp:3206
#18 0xb6cbf228 in QAction::triggered (this=0x86af3a0, _t1=false) at .moc/debug-shared/moc_qaction.cpp:236
#19 0xb6cbe7ed in QAction::activate (this=0x86af3a0, event=QAction::Trigger) at kernel/qaction.cpp:1160
#20 0xb6cbf82d in QAction::trigger (this=0x86af3a0) at ../../include/QtGui/../../src/gui/kernel/qaction.h:203
#21 0xb71fdde5 in QToolButton::nextCheckState (this=0x85e28e0) at widgets/qtoolbutton.cpp:1135
#22 0xb70f92a7 in QAbstractButtonPrivate::click (this=0x85e2900) at widgets/qabstractbutton.cpp:525
#23 0xb70fa9ba in QAbstractButton::mouseReleaseEvent (this=0x85e28e0, e=0xbfba7dcc) at widgets/qabstractbutton.cpp:1115
#24 0xb71fc6da in QToolButton::mouseReleaseEvent (this=0x85e28e0, e=0xbfba7dcc) at widgets/qtoolbutton.cpp:709
#25 0xb6d2e350 in QWidget::event (this=0x85e28e0, event=0xbfba7dcc) at kernel/qwidget.cpp:7549
#26 0xb70fa855 in QAbstractButton::event (this=0x85e28e0, e=0xbfba7dcc) at widgets/qabstractbutton.cpp:1077
#27 0xb71fde54 in QToolButton::event (this=0x85e28e0, event=0xbfba7dcc) at widgets/qtoolbutton.cpp:1151
#28 0xb6cce00b in QApplicationPrivate::notify_helper (this=0x849b9d0, receiver=0x85e28e0, e=0xbfba7dcc) at kernel/qapplication.cpp:4056
#29 0xb6cccd56 in QApplication::notify (this=0xbfba96bc, receiver=0x85e28e0, e=0xbfba7dcc) at kernel/qapplication.cpp:3758
#30 0xb78e94ba in KApplication::notify (this=0xbfba96bc, receiver=0x85e28e0, event=0xbfba7dcc) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#31 0xb6739089 in QCoreApplication::notifyInternal (this=0xbfba96bc, receiver=0x85e28e0, event=0xbfba7dcc) at kernel/qcoreapplication.cpp:610
#32 0xb6cceeb5 in QCoreApplication::sendSpontaneousEvent (receiver=0x85e28e0, event=0xbfba7dcc) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216
#33 0xb6ccb48c in QApplicationPrivate::sendMouseEvent (receiver=0x85e28e0, event=0xbfba7dcc, alienWidget=0x85e28e0, nativeWidget=0x85c4460, buttonDown=0xb76a91a0, lastMouseReceiver=@0xb76a91a4)
    at kernel/qapplication.cpp:2924
#34 0xb6d4f3f4 in QETWidget::translateMouseEvent (this=0x85c4460, event=0xbfba9340) at kernel/qapplication_x11.cpp:4409
#35 0xb6d4c0cc in QApplication::x11ProcessEvent (this=0xbfba96bc, event=0xbfba9340) at kernel/qapplication_x11.cpp:3428
#36 0xb6d7f5b4 in x11EventSourceDispatch (s=0x849e670, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#37 0xb5f78d98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#38 0xb5f7c3e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#39 0xb5f7c513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#40 0xb676d922 in QEventDispatcherGlib::processEvents (this=0x849aff8, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#41 0xb6d7fbda in QGuiEventDispatcherGlib::processEvents (this=0x849aff8, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#42 0xb6736667 in QEventLoop::processEvents (this=0xbfba960c, flags={i = 36}) at kernel/qeventloop.cpp:149
#43 0xb67367ac in QEventLoop::exec (this=0xbfba960c, flags={i = 0}) at kernel/qeventloop.cpp:201
#44 0xb6739765 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#45 0xb6ccc128 in QApplication::exec () at kernel/qapplication.cpp:3525
#46 0x08052f5e in main (argc=1, argv=0xbfba9804) at /home/kde-devel/kde/src/KDE/kdebase/workspace/systemsettings/app/main.cpp:51

Reported using DrKonqi
Comment 1 Ben Cooksley 2009-07-19 12:31:57 UTC
SVN commit 999137 by bcooksley:

Fix crash for Standard Keyboard Shortcuts with a workaround. Makes closing modules faster anyway.
CCBUG: 199830
CCBUG: 200665

 M  +2 -0      ModuleView.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=999137
Comment 2 Ben Cooksley 2009-07-19 12:34:33 UTC
SVN commit 999146 by bcooksley:

Fix crash for Standard Keyboard Shortcuts with a workaround. Makes closing modules faster anyway
CCBUG: 199830
CCBUG: 200665

 M  +2 -0      ModuleView.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=999146
Comment 3 FiNeX 2009-07-19 13:40:15 UTC
@Dario: did the Ben's commit fix the crash?
Comment 4 Dario Andres 2009-07-19 21:54:01 UTC
Ok, I can confirm it doesn't crash anymore using:

Qt: 4.5.2 (KDE-Qt git commit 46a247a2c9a8c0c4456a02f6a0922d859d88fe76
        Date:   Fri Jun 26 13:45:37 2009 +0200)
KDE: 4.3.61 (KDE 4.3.61 (KDE 4.4 >= 20090717))
kdelibs svn rev. 999250 / kdebase svn rev. 999250
on ArchLinux i686 - Kernel 2.6.30.1

Thanks!
Comment 5 Ben Cooksley 2009-07-20 07:28:25 UTC
Just as a final note to future searchers: It appears that the Standard Keyboard Shortcuts module, or classes it uses cannot handle being deleted while shown and cause major internal corruption ( for the ModuleView class here, which is the modules creator and grand parent ), which is the real cause of the crash.