Bug 248096 - systemsettings crashes when clicking on 'Input Devices' item
Summary: systemsettings crashes when clicking on 'Input Devices' item
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_keyboard_layout (show other bugs)
Version: unspecified
Platform: Compiled Sources All
: NOR crash
Target Milestone: ---
Assignee: Andriy Rysin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-16 22:35 UTC by Alexey Chernov
Modified: 2010-09-01 21:38 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 4.5.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Chernov 2010-08-16 22:35:27 UTC
Application: systemsettings (1.0)
KDE Platform Version: 4.5.00 (KDE 4.5.0) (Compiled from sources)
Qt Version: 4.6.3
Operating System: Linux 2.6.35.1 x86_64

-- Information about the crash:
To reproduce:
1. Open systemsettings.
2. Click on Input Devices.
3. Here's the crash (100% reproducible).

The crash can be reproduced every time.

-- Backtrace:
Application: Параметры системы (systemsettings), signal: Segmentation fault
[KCrash Handler]
#6  0x00007f45da161e54 in QList (this=0x7fffd02b3180, l=...) at /usr/include/QtCore/qlist.h:114
#7  0x00007f45da161e89 in QForeachContainer (this=0x7fffd02b3180, t=...) at /usr/include/QtCore/qglobal.h:2224
#8  0x00007f45da163bb9 in KCMKeyboardWidget::initializeKeyboardModelUI (this=0x23dd3d0) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard_widget.cpp:154
#9  0x00007f45da164ac8 in KCMKeyboardWidget (this=0x23dd3d0, rules_=<value optimized out>, keyboardConfig_=0x23dce60, componentData_=<value optimized out>)
    at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard_widget.cpp:73
#10 0x00007f45da1608de in KCMKeyboard (this=0x258f0e0, parent=<value optimized out>) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard.cpp:70
#11 0x00007f45da162608 in KPluginFactory::createInstance<KCMKeyboard, QWidget> (parentWidget=<value optimized out>, parent=<value optimized out>, args=...) at /usr/include/kpluginfactory.h:461
#12 0x00007f45f8cdd3ba in KPluginFactory::create (this=<value optimized out>, iface=0x7f45fa3e09a0 "KCModule", parentWidget=<value optimized out>, parent=<value optimized out>, args=..., 
    keyword=<value optimized out>) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdecore/util/kpluginfactory.cpp:191
#13 0x00007f45fae98914 in KPluginFactory::create<KCModule> (this=0x258d610, parent=0x25566f0, args=...) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdecore/util/kpluginfactory.h:491
#14 0x00007f45fae989b2 in KPluginFactory::create<KCModule> (this=0x258d610, parent=0x25566f0, args=<value optimized out>)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdecore/util/kpluginfactory.h:336
#15 0x00007f45fae98a55 in KLibLoader::createInstance<KCModule> (libname=..., parent=0x25566f0, args=..., error=0x7fffd02b38dc)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdecore/util/klibloader.h:277
#16 0x00007f45fae98b3e in KService::createInstance<KCModule> (service=<value optimized out>, parent=0x25566f0, args=..., error=0x7fffd02b38dc)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdecore/services/kservice.h:572
#17 0x00007f45fae979a6 in KCModuleLoader::loadModule (mod=..., report=<value optimized out>, parent=0x25566f0, args=<value optimized out>)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kutils/kcmoduleloader.cpp:95
#18 0x00007f45fae9c8c8 in KCModuleProxyPrivate::loadModule (this=0x23f1020) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kutils/kcmoduleproxy.cpp:106
#19 0x00007f45fae9d105 in KCModuleProxy::realModule (this=<value optimized out>) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kutils/kcmoduleproxy.cpp:83
#20 0x00007f45fac70a14 in ModuleView::stateChanged (this=0x23e1b90) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/core/ModuleView.cpp:344
#21 0x00007f45fac70b83 in ModuleView::activeModuleChanged (this=0x23e1b90, current=0x23c0200, previous=0x0)
    at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/core/ModuleView.cpp:331
#22 0x00007f45fac712b8 in ModuleView::qt_metacall (this=0x23e1b90, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffd02b3ea0)
    at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/build/systemsettings/core/ModuleView.moc:99
#23 0x00007f45f854d60a in QMetaObject::activate (sender=0x23dac60, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#24 0x00007f45fa2a5868 in KPageWidget::currentPageChanged (this=0x7fffd02b3180, _t1=0x23c0200, _t2=0x0) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpagewidget.moc:96
#25 0x00007f45fa2a5a6a in KPageWidget::qt_metacall (this=0x23dac60, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fffd02b3fe0)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpagewidget.moc:84
#26 0x00007f45f854d60a in QMetaObject::activate (sender=0x23dac60, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#27 0x00007f45fa2a0d87 in KPageView::currentPageChanged (this=0x7fffd02b3180, _t1=<value optimized out>, _t2=<value optimized out>)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpageview.moc:140
#28 0x00007f45fa2a19f2 in KPageViewPrivate::_k_pageSelected (this=0x23db8a0, index=..., previous=...) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdeui/paged/kpageview.cpp:235
#29 0x00007f45fa2a2418 in KPageView::qt_metacall (this=0x23dac60, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffd02b4190)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpageview.moc:100
#30 0x00007f45fa2a5a25 in KPageWidget::qt_metacall (this=0x7fffd02b3180, _c=QMetaObject::QueryPropertyUser, _id=36534017, _a=0x1)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpagewidget.moc:76
#31 0x00007f45f854d60a in QMetaObject::activate (sender=0x24c9c90, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#32 0x00007f45f9805c4a in QItemSelectionModel::currentChanged (this=0x7fffd02b3180, _t1=<value optimized out>, _t2=<value optimized out>) at .moc/debug-shared/moc_qitemselectionmodel.cpp:159
#33 0x00007f45f9805dd2 in QItemSelectionModel::setCurrentIndex (this=0x24c9c90, index=..., command=<value optimized out>) at itemviews/qitemselectionmodel.cpp:1167
#34 0x00007f45fa2a1e12 in KPageViewPrivate::_k_rebuildGui (this=0x23db8a0) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdeui/paged/kpageview.cpp:70
#35 0x00007f45fa2a22f5 in KPageViewPrivate::_k_modelChanged (this=0x7fffd02b3180) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdeui/paged/kpageview.cpp:190
#36 0x00007f45fa2a2430 in KPageView::qt_metacall (this=0x23dac60, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffd02b45b0)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpageview.moc:99
#37 0x00007f45fa2a5a25 in KPageWidget::qt_metacall (this=0x7fffd02b3180, _c=QMetaObject::QueryPropertyUser, _id=36534017, _a=0x1)
    at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/build/kdeui/kpagewidget.moc:76
#38 0x00007f45f854d60a in QMetaObject::activate (sender=0x23e8410, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#39 0x00007f45fac70e75 in ModuleView::addModule (this=0x23e1b90, module=0x23b2988) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/core/ModuleView.cpp:190
#40 0x00007f45fac71103 in ModuleView::loadModule (this=<value optimized out>, menuItem=<value optimized out>)
    at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/core/ModuleView.cpp:144
#41 0x00007f45da570b81 in IconMode::changeModule (this=0x23e1650, activeModule=...) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/icons/IconMode.cpp:133
#42 0x00007f45da570c61 in IconMode::qt_metacall (this=0x23e1650, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffd02b4960)
    at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/build/systemsettings/icons/IconMode.moc:80
#43 0x00007f45f854d60a in QMetaObject::activate (sender=0x20dc330, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#44 0x00007f45f979b775 in QAbstractItemView::activated (this=0x7fffd02b3180, _t1=<value optimized out>) at .moc/debug-shared/moc_qabstractitemview.cpp:345
#45 0x00007f45f97ad445 in QAbstractItemView::mouseReleaseEvent (this=0x20dc330, event=<value optimized out>) at itemviews/qabstractitemview.cpp:1792
#46 0x00007f45f97c9e3b in QListView::mouseReleaseEvent (this=0x7fffd02b3180, e=0x8) at itemviews/qlistview.cpp:796
#47 0x00007f45fa2415b2 in KCategorizedView::mouseReleaseEvent (this=0x20dc330, event=<value optimized out>) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdeui/itemviews/kcategorizedview.cpp:1031
#48 0x00007f45f91fa5b1 in QWidget::event (this=0x20dc330, event=0x7fffd02b5bd0) at kernel/qwidget.cpp:8044
#49 0x00007f45f9646cb4 in QFrame::event (this=0x20dc330, e=0x7fffd02b5bd0) at widgets/qframe.cpp:557
#50 0x00007f45f97adbfb in QAbstractItemView::viewportEvent (this=0x20dc330, event=0x7fffd02b5bd0) at itemviews/qabstractitemview.cpp:1615
#51 0x00007f45f85362e8 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x23e3260, event=0x7fffd02b5bd0) at kernel/qcoreapplication.cpp:841
#52 0x00007f45f919ed3c in QApplicationPrivate::notify_helper (this=0x20e20a0, receiver=0x23e3260, e=0x7fffd02b5bd0) at kernel/qapplication.cpp:4298
#53 0x00007f45f919fcc6 in QApplication::notify (this=0x7fffd02b6700, receiver=<value optimized out>, e=0x7fffd02b5bd0) at kernel/qapplication.cpp:3867
#54 0x00007f45fa26aec1 in KApplication::notify (this=0x7fffd02b6700, receiver=0x23e3260, event=0x7fffd02b5bd0) at /usr/src/packages/kde4/4.5.0/kdelibs-4.5.0/kdeui/kernel/kapplication.cpp:310
#55 0x00007f45f853674b in QCoreApplication::notifyInternal (this=0x7fffd02b6700, receiver=0x23e3260, event=0x7fffd02b5bd0) at kernel/qcoreapplication.cpp:726
#56 0x00007f45f91a5129 in QCoreApplication::sendEvent (receiver=0x23e3260, event=0x7fffd02b5bd0, alienWidget=0x23e3260, nativeWidget=0x20d9920, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#57 QApplicationPrivate::sendMouseEvent (receiver=0x23e3260, event=0x7fffd02b5bd0, alienWidget=0x23e3260, nativeWidget=0x20d9920, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at kernel/qapplication.cpp:2967
#58 0x00007f45f92322ac in QETWidget::translateMouseEvent (this=0x20d9920, event=<value optimized out>) at kernel/qapplication_x11.cpp:4380
#59 0x00007f45f9230fd0 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffd02b6350) at kernel/qapplication_x11.cpp:3513
#60 0x00007f45f92600c2 in x11EventSourceDispatch (s=0x20e5b70, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#61 0x00007f45f409de7d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#62 0x00007f45f40a1838 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#63 0x00007f45f40a1960 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#64 0x00007f45f8569283 in QEventDispatcherGlib::processEvents (this=0x2092230, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#65 0x00007f45f925f9fe in QGuiEventDispatcherGlib::processEvents (this=0x7fffd02b3180, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#66 0x00007f45f8535252 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#67 0x00007f45f8535625 in QEventLoop::exec (this=0x7fffd02b6670, flags=) at kernel/qeventloop.cpp:201
#68 0x00007f45f853788b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#69 0x00000000004133af in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/packages/kde4/4.5.0/kdebase-workspace-4.5.0/systemsettings/app/main.cpp:49

Reported using DrKonqi
Comment 1 Raphael Kubo da Costa 2010-08-18 15:08:56 UTC
Changing component to reassign the report to arysin.

I get the same crash on FreeBSD and trunk when I run "kcmshell4 kcm_keyboard". Before crashing, I get the following message on the terminal:

  Cant' open the rules file "/usr/local/lib/X11/../xkb/rules/base.xml"

Indeed, the file does not exist on my system. Where should it come from?
Comment 2 Andriy Rysin 2010-08-18 16:51:36 UTC
Could you please specify where is your base.xml or evdev.xml file located?
Comment 3 Alexey Chernov 2010-08-18 22:44:39 UTC
Mine is in /usr/X11/share/X11/xkb/rules/base.xml
Comment 4 Raphael Kubo da Costa 2010-08-19 03:38:50 UTC
Mine is under /usr/local/share/X11/xkb/rules.
Comment 5 Andriy Rysin 2010-08-19 06:12:13 UTC
ok, I've pushed some improvement for detecting xkb directory both in 4.5 branch and trunk. It definitely should help Raphael's case, not so sure about Alexey's. If you could try it and let me know if it works that'd be great.

Alexey, could you please also tell me where your X11 lib directory is?
Comment 6 Raphael Kubo da Costa 2010-08-19 15:32:19 UTC
Hey there, I can confirm it works for me now.
Comment 7 Alexey Chernov 2010-08-19 20:48:18 UTC
Yes, of course. My $XORG_PREFIX is /usr/X11 so X11 lib directory is /usr/X11/lib
Comment 8 Andriy Rysin 2010-08-20 01:28:23 UTC
Ok, I've pushed one more update so Alexey's directory should work now too.
Comment 9 Andriy Rysin 2010-08-31 04:07:07 UTC
SVN commit 1170189 by rysin:

Allow kcm_keyboard to start even if rule files not found
BUG: 248096
FIXED-IN: 4.5.2


 M  +16 -0     kcm_keyboard_widget.cpp  
 M  +13 -12    xkb_helper.cpp  
 M  +0 -1      xkb_helper.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170189
Comment 10 Andriy Rysin 2010-08-31 04:07:51 UTC
SVN commit 1170190 by rysin:

Allow kcm_keyboard to start even if rule files not found
BUG: 248096


 M  +16 -0     kcm_keyboard_widget.cpp  
 M  +13 -12    xkb_helper.cpp  
 M  +0 -1      xkb_helper.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170190
Comment 11 Andriy Rysin 2010-08-31 04:10:53 UTC
Just to summarize:
1) improved algorithm to find rules file was pushed before 4.5.1 (and trunk) - so most of the time rules should be there
2) in case rules file can't be found anyway we now still can start keyboard kcm module, though in this case the keyboard module combo, and layouts and advanced tabs will be disabled - this will be in 4.5.2 (keyboard daemon was able to operate without rules since 4.5.0 - no nice names for layouts - only layout and variant short labels will be shown)
Comment 12 Alexey Chernov 2010-09-01 21:38:46 UTC
Thank you very much, Andriy, for fast response and fix. Hope to try it in 4.5.1 in a couple of days.