Bug 244913 - Input Devices settings crashing
Summary: Input Devices settings crashing
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_keyboard (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Andriy Rysin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-17 00:19 UTC by Lukas Tines
Modified: 2010-10-08 22:32 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.5.2


Attachments
evdev.xml file (147.25 KB, application/xml)
2010-08-05 14:41 UTC, Lukas Tines
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lukas Tines 2010-07-17 00:19:25 UTC
Application: systemsettings (1.0)
KDE Platform Version: 4.4.93 (KDE 4.4.93 (KDE 4.5 >= 20100713)) "release 1"
Qt Version: 4.6.3
Operating System: Linux 2.6.34-12-default x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
When I try to change "Shorcut for Switching Layout" in Keyboard settings (Input Devices), it automatically selects the next tab - Advanced. After I check "Configure keyboard options", kcm_systemsettings crashes - every time

The crash can be reproduced every time.

-- Backtrace:
Application: Systémové nastavenia (systemsettings), signal: Segmentation fault
[KCrash Handler]
#6  0x00007f33aa440f73 in QString::operator== (this=0x16fc720, other=@0x8) at tools/qstring.cpp:2060
#7  0x00007f33ab482ab1 in QAbstractButton::setText (this=0x16fc4f0, text=...) at widgets/qabstractbutton.cpp:636
#8  0x00007f3399349ec4 in ?? () from /usr/lib64/kde4/kcm_keyboard.so
#9  0x00007f339934a11b in ?? () from /usr/lib64/kde4/kcm_keyboard.so
#10 0x00007f339934a69a in ?? () from /usr/lib64/kde4/kcm_keyboard.so
#11 0x00007f339934715c in ?? () from /usr/lib64/kde4/kcm_keyboard.so
#12 0x00007f33aa4f9a1f in QMetaObject::activate (sender=0x1713be0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff9799a730) at kernel/qobject.cpp:3295
#13 0x00007f33ab7370c2 in QAbstractButton::toggled (this=<value optimized out>, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:213
#14 0x00007f33ab483d63 in QAbstractButton::setChecked (this=0x1713be0, checked=true) at widgets/qabstractbutton.cpp:766
#15 0x00007f33ab496bc6 in QCheckBox::nextCheckState (this=<value optimized out>) at widgets/qcheckbox.cpp:368
#16 0x00007f33ab4839fa in QAbstractButtonPrivate::click (this=0x1713c20) at widgets/qabstractbutton.cpp:528
#17 0x00007f33ab483cac in QAbstractButton::mouseReleaseEvent (this=0x1713be0, e=0x7fff9799b0d0) at widgets/qabstractbutton.cpp:1121
#18 0x00007f33ab131dbc in QWidget::event (this=0x1713be0, event=0x7fff9799b0d0) at kernel/qwidget.cpp:8044
#19 0x00007f33ab0e14d4 in QApplicationPrivate::notify_helper (this=0x64d390, receiver=0x1713be0, e=0x7fff9799b0d0) at kernel/qapplication.cpp:4302
#20 0x00007f33ab0ea34a in QApplication::notify (this=<value optimized out>, receiver=0x1713be0, e=0x7fff9799b0d0) at kernel/qapplication.cpp:3867
#21 0x00007f33abda0606 in KApplication::notify (this=0x7fff9799be00, receiver=0x1713be0, event=0x7fff9799b0d0) at /usr/src/debug/kdelibs-4.4.93svn1149349/kdeui/kernel/kapplication.cpp:309
#22 0x00007f33aa4e5e4c in QCoreApplication::notifyInternal (this=0x7fff9799be00, receiver=0x1713be0, event=0x7fff9799b0d0) at kernel/qcoreapplication.cpp:726
#23 0x00007f33ab0e31e5 in sendEvent (receiver=0x1713be0, event=0x7fff9799b0d0, alienWidget=0x1713be0, nativeWidget=0x7d5d70, buttonDown=0x7f33abb8db28, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:215
#24 QApplicationPrivate::sendMouseEvent (receiver=0x1713be0, event=0x7fff9799b0d0, alienWidget=0x1713be0, nativeWidget=0x7d5d70, buttonDown=0x7f33abb8db28, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2967
#25 0x00007f33ab15d6c8 in QETWidget::translateMouseEvent (this=0x7d5d70, event=<value optimized out>) at kernel/qapplication_x11.cpp:4380
#26 0x00007f33ab15be19 in QApplication::x11ProcessEvent (this=0x7fff9799be00, event=0x7fff9799ba30) at kernel/qapplication_x11.cpp:3513
#27 0x00007f33ab182492 in x11EventSourceDispatch (s=0x650e70, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#28 0x00007f33a7fb5a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f33a7fb6270 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f33a7fb6510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007f33aa50e67f in QEventDispatcherGlib::processEvents (this=0x61d920, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#32 0x00007f33ab18214e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x00007f33aa4e5292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007f33aa4e5495 in QEventLoop::exec (this=0x7fff9799bd50, flags=...) at kernel/qeventloop.cpp:201
#35 0x00007f33aa4e988b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#36 0x0000000000411949 in _start ()

Reported using DrKonqi
Comment 1 Andriy Rysin 2010-08-05 02:21:48 UTC
I am afraid I'd need the names of the methods from kcm_keyboard.so
Could you please install debug packages with symbol information and send the stack trace again?

Thanks.
Comment 2 Lukas Tines 2010-08-05 12:52:27 UTC
Complete stacktrace:
#6  0x00007f8a8de7bf73 in QString::operator== (this=0x1728ed0, other=@0x8) at tools/qstring.cpp:2060
#7  0x00007f8a8ee9fab1 in QAbstractButton::setText (this=0x170cf30, text=...) at widgets/qabstractbutton.cpp:636
#8  0x00007f8a7cd75cce in KCMKeyboardWidget::updateXkbShortcutButton (this=<value optimized out>, groupName=<value optimized out>, button=0x170cf30)
    at /usr/src/debug/kdebase-workspace-4.4.95/kcontrol/keyboard/kcm_keyboard_widget.cpp:456
#9  0x00007f8a7cd75ebb in KCMKeyboardWidget::updateXkbShortcutsButtons (this=0x1714c50) at /usr/src/debug/kdebase-workspace-4.4.95/kcontrol/keyboard/kcm_keyboard_widget.cpp:466
#10 0x00007f8a7cd763e9 in KCMKeyboardWidget::uiChanged (this=0x1714c50) at /usr/src/debug/kdebase-workspace-4.4.95/kcontrol/keyboard/kcm_keyboard_widget.cpp:148
#11 0x00007f8a7cd86a9c in KCMKeyboardWidget::qt_metacall (this=0x1714c50, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff48988300)
    at /usr/src/debug/kdebase-workspace-4.4.95/build/kcontrol/keyboard/moc_kcm_keyboard_widget.cpp:108
#12 0x00007f8a8df34a1f in QMetaObject::activate (sender=0x16f05e0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff48988300) at kernel/qobject.cpp:3295
#13 0x00007f8a8f1540c2 in QAbstractButton::toggled (this=<value optimized out>, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:213
#14 0x00007f8a8eea0d63 in QAbstractButton::setChecked (this=0x16f05e0, checked=true) at widgets/qabstractbutton.cpp:766
#15 0x00007f8a8eeb3bc6 in QCheckBox::nextCheckState (this=<value optimized out>) at widgets/qcheckbox.cpp:368
#16 0x00007f8a8eea09fa in QAbstractButtonPrivate::click (this=0x173f170) at widgets/qabstractbutton.cpp:528
#17 0x00007f8a8eea0cac in QAbstractButton::mouseReleaseEvent (this=0x16f05e0, e=0x7fff48988ca0) at widgets/qabstractbutton.cpp:1121
#18 0x00007f8a8eb4edbc in QWidget::event (this=0x16f05e0, event=0x7fff48988ca0) at kernel/qwidget.cpp:8044
#19 0x00007f8a8eafe4d4 in QApplicationPrivate::notify_helper (this=0x6528a0, receiver=0x16f05e0, e=0x7fff48988ca0) at kernel/qapplication.cpp:4302
#20 0x00007f8a8eb0734a in QApplication::notify (this=<value optimized out>, receiver=0x16f05e0, e=0x7fff48988ca0) at kernel/qapplication.cpp:3867
#21 0x00007f8a8f72c096 in KApplication::notify (this=0x7fff489899d0, receiver=0x16f05e0, event=0x7fff48988ca0) at /usr/src/debug/kdelibs-4.4.95/kdeui/kernel/kapplication.cpp:309
#22 0x00007f8a8df20e4c in QCoreApplication::notifyInternal (this=0x7fff489899d0, receiver=0x16f05e0, event=0x7fff48988ca0) at kernel/qcoreapplication.cpp:726
#23 0x00007f8a8eb001e5 in sendEvent (receiver=0x16f05e0, event=0x7fff48988ca0, alienWidget=0x16f05e0, nativeWidget=0x715b20, buttonDown=0x7f8a8f5aab28, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:215
#24 QApplicationPrivate::sendMouseEvent (receiver=0x16f05e0, event=0x7fff48988ca0, alienWidget=0x16f05e0, nativeWidget=0x715b20, buttonDown=0x7f8a8f5aab28, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2967
#25 0x00007f8a8eb7a6c8 in QETWidget::translateMouseEvent (this=0x715b20, event=<value optimized out>) at kernel/qapplication_x11.cpp:4380
#26 0x00007f8a8eb78e19 in QApplication::x11ProcessEvent (this=0x7fff489899d0, event=0x7fff48989600) at kernel/qapplication_x11.cpp:3513
#27 0x00007f8a8eb9f492 in x11EventSourceDispatch (s=0x656390, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#28 0x00007f8a8b9f0a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f8a8b9f1270 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f8a8b9f1510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007f8a8df4967f in QEventDispatcherGlib::processEvents (this=0x61e690, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#32 0x00007f8a8eb9f14e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x00007f8a8df20292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007f8a8df20495 in QEventLoop::exec (this=0x7fff48989920, flags=...) at kernel/qeventloop.cpp:201
#35 0x00007f8a8df2488b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#36 0x0000000000410556 in main (argc=5, argv=0x7fff48989c98) at /usr/src/debug/kdebase-workspace-4.4.95/systemsettings/app/main.cpp:49

I am now using KDE SC 4.4.59
Comment 3 Andriy Rysin 2010-08-05 14:05:05 UTC
It looks like you may have an Option in your kxkbrc file which is not present in rules any more. I'll try to put a workaround for this case but you may just try to clean the Options line in kxkbrc file and restart keyboard control module to see if it helps. If it does not then something is wrong with rules file.
Comment 4 Lukas Tines 2010-08-05 14:28:45 UTC
Contets of my current kxkbrc file:
[Layout]
DisplayNames=,
LayoutList=sk(qwerty),us(basic)
Model=pc101
ResetOldOptions=false
ShowFlag=true
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=WinClass
Use=true

so there isn't a Option line. I don't know if it helps, but i have done live upgrade to OpenSuSE 11.3 and KDE 4.5 RC1 prior to crashing (in KDE 4.4 it worked fine)

PS: How do i restart keyboard control module?
Comment 5 Andriy Rysin 2010-08-05 14:38:04 UTC
Seems my assumption was wrong, could you please attach you /usr/share/X11/xkb/rules/evdev.xml file?
Comment 6 Lukas Tines 2010-08-05 14:41:14 UTC
Created attachment 49835 [details]
evdev.xml file
Comment 7 Andriy Rysin 2010-08-07 15:31:09 UTC
Hmm, evdev.xml looks fine, I am curious if it's related to translated UI, looks like you're using Slovak translation. Could you please try it in default English and see if you still get the crash?
Comment 8 Lukas Tines 2010-08-11 19:08:18 UTC
I switched to English but systemsettings is still crashing when I try to check "Configure keyboard options"

Application: System Settings (systemsettings), signal: Segmentation fault
[KCrash Handler]
#6  0x00007fc094aaaf73 in QString::operator== (this=0x178d2e0, other=@0x8) at tools/qstring.cpp:2060
#7  0x00007fc095aceab1 in QAbstractButton::setText (this=0x91afe0, text=...) at widgets/qabstractbutton.cpp:636
#8  0x00007fc083647c2e in KCMKeyboardWidget::updateXkbShortcutButton (this=<value optimized out>, groupName=<value optimized out>, button=0x91afe0)
    at /usr/src/debug/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard_widget.cpp:456
#9  0x00007fc083647e1b in KCMKeyboardWidget::updateXkbShortcutsButtons (this=0x17a8730) at /usr/src/debug/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard_widget.cpp:466
#10 0x00007fc083648349 in KCMKeyboardWidget::uiChanged (this=0x17a8730) at /usr/src/debug/kdebase-workspace-4.5.0/kcontrol/keyboard/kcm_keyboard_widget.cpp:148
#11 0x00007fc0836589cc in KCMKeyboardWidget::qt_metacall (this=0x17a8730, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffd68dda80)
    at /usr/src/debug/kdebase-workspace-4.5.0/build/kcontrol/keyboard/moc_kcm_keyboard_widget.cpp:108
#12 0x00007fc094b63a1f in QMetaObject::activate (sender=0x19aabf0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffd68dda80) at kernel/qobject.cpp:3295
#13 0x00007fc095d830c2 in QAbstractButton::toggled (this=<value optimized out>, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:213
#14 0x00007fc095acfd63 in QAbstractButton::setChecked (this=0x19aabf0, checked=true) at widgets/qabstractbutton.cpp:766
#15 0x00007fc095ae2bc6 in QCheckBox::nextCheckState (this=<value optimized out>) at widgets/qcheckbox.cpp:368
#16 0x00007fc095acf9fa in QAbstractButtonPrivate::click (this=0x175e3f0) at widgets/qabstractbutton.cpp:528
#17 0x00007fc095acfcac in QAbstractButton::mouseReleaseEvent (this=0x19aabf0, e=0x7fffd68de420) at widgets/qabstractbutton.cpp:1121
#18 0x00007fc09577ddbc in QWidget::event (this=0x19aabf0, event=0x7fffd68de420) at kernel/qwidget.cpp:8044
#19 0x00007fc09572d4d4 in QApplicationPrivate::notify_helper (this=0x652980, receiver=0x19aabf0, e=0x7fffd68de420) at kernel/qapplication.cpp:4302
#20 0x00007fc09573634a in QApplication::notify (this=<value optimized out>, receiver=0x19aabf0, e=0x7fffd68de420) at kernel/qapplication.cpp:3867
#21 0x00007fc09635b0b6 in KApplication::notify (this=0x7fffd68df150, receiver=0x19aabf0, event=0x7fffd68de420) at /usr/src/debug/kdelibs-4.5.0/kdeui/kernel/kapplication.cpp:310
#22 0x00007fc094b4fe4c in QCoreApplication::notifyInternal (this=0x7fffd68df150, receiver=0x19aabf0, event=0x7fffd68de420) at kernel/qcoreapplication.cpp:726
#23 0x00007fc09572f1e5 in sendEvent (receiver=0x19aabf0, event=0x7fffd68de420, alienWidget=0x19aabf0, nativeWidget=0x7ae6e0, buttonDown=0x7fc0961d9b28, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:215
#24 QApplicationPrivate::sendMouseEvent (receiver=0x19aabf0, event=0x7fffd68de420, alienWidget=0x19aabf0, nativeWidget=0x7ae6e0, buttonDown=0x7fc0961d9b28, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2967
#25 0x00007fc0957a96c8 in QETWidget::translateMouseEvent (this=0x7ae6e0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4380
#26 0x00007fc0957a7e19 in QApplication::x11ProcessEvent (this=0x7fffd68df150, event=0x7fffd68ded80) at kernel/qapplication_x11.cpp:3513
#27 0x00007fc0957ce492 in x11EventSourceDispatch (s=0x656450, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#28 0x00007fc09261fa93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007fc092620270 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007fc092620510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007fc094b7867f in QEventDispatcherGlib::processEvents (this=0x61e690, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#32 0x00007fc0957ce14e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x00007fc094b4f292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007fc094b4f495 in QEventLoop::exec (this=0x7fffd68df0a0, flags=...) at kernel/qeventloop.cpp:201
#35 0x00007fc094b5388b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#36 0x0000000000410556 in main (argc=5, argv=0x7fffd68df418) at /usr/src/debug/kdebase-workspace-4.5.0/systemsettings/app/main.cpp:49

I am now on KDE 4.5
Comment 9 Andriy Rysin 2010-08-31 04:21:43 UTC
SVN commit 1170192 by rysin:

Don't crash if we can't find the xkb option info
BUG: 244913
FIXED-IN: 4.5.2


 M  +8 -1      kcm_keyboard_widget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170192
Comment 10 Andriy Rysin 2010-08-31 04:22:28 UTC
SVN commit 1170193 by rysin:

Don't crash if we can't find the xkb option info
BUG: 244913


 M  +8 -1      kcm_keyboard_widget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170193
Comment 11 Andriy Rysin 2010-08-31 04:24:18 UTC
I've pushed a fix to display raw xkb option if it's description can't be found. So it should not crash now (since revision 1170193) but if you see the raw xkb option text on the shortcut button please provide it here may be we can get to the root of it.
Comment 12 Lukas Tines 2010-10-07 20:05:42 UTC
Well with 4.5.2 when I first started the dialog, text was grp:shift (or something like that, I forgot to note the exact text). But I was able to change settings on "Advanced" tab and even clear the "Main shortcut" without crash.
Comment 13 Andriy Rysin 2010-10-07 20:25:26 UTC
Could you please send your new options from kxkbrc ?
Comment 14 Lukas Tines 2010-10-08 22:32:48 UTC
My current kxkbrc

Layout]
DisplayNames=,
LayoutList=sk(qwerty),us(basic)
Model=pc101
Options=grp_led:scroll
ResetOldOptions=true
ShowFlag=false
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=WinClass
Use=true

But now (finally) pressing both SHIFTs don't change keyboard layout