systemsettings5 crashed with SIGSEGV in TouchpadConfigContainer::sizeHint()

Bug #1832099 reported by André Verwijs
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Systemsettings
Fix Released
High
systemsettings (Ubuntu)
Confirmed
Medium
Unassigned
Eoan
Won't Fix
Medium
Unassigned

Bug Description

SYSTEM:

Operating System: Kubuntu 19.10
(Ubuntu Eoan Ermine, development branch)

KDE Plasma Version: 5.15.90
KDE Frameworks Version: 5.58.0
Qt Version: 5.12.2
Kernel Version: 5.0.0-16-generic
Kernel Linux 5.0.0-16-generic (x86_64)
Version #17-Ubuntu SMP Wed May 15 10:52:21 UTC 2019
C Library GNU C Library / (Ubuntu GLIBC 2.29-0ubuntu2) 2.29
OS Type: 64-bit
Processors: 2 × Intel® Core™2 CPU 6700 @ 2.66GHz
Memory: 5,8 GiB
graphics: GeForce GT 610
------------------------------------------------------------------------------------------

System-settings crashing when i choose "input devices" (mouse, keboard etc.)

Backtrace:
~~~~~~~~~~~~~~~~~~

Application: Systeeminstellingen (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f545c0776c0 (LWP 25783))]

Thread 6 (Thread 0x7f544933d700 (LWP 25792)):
#0 0x00007f5460690f79 in __GI___libc_read (fd=12, buf=0x7f544933cb20, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:26
#1 0x00007f545e42f6e0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007f545e3e87ef in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007f545e3e8cc0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007f545e3e8e3c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007f5460c1e063 in QEventDispatcherGlib::processEvents (this=0x7f5440000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6 0x00007f5460bc95bb in QEventLoop::exec (this=this@entry=0x7f544933cd40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#7 0x00007f5460a142c6 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#8 0x00007f545fd2fef5 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
#9 0x00007f5460a15612 in QThreadPrivate::start (arg=0x55dcb0970870) at thread/qthread_unix.cpp:361
#10 0x00007f545ee8d182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#11 0x00007f54606a1b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f5449d81700 (LWP 25790)):
#0 futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7f5449d80bd0, expected=0, futex_word=0x55dcb08a9814) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1 __pthread_cond_wait_common (abstime=0x7f5449d80c80, mutex=0x55dcb08a97c0, cond=0x55dcb08a97e8) at pthread_cond_wait.c:533
#2 __pthread_cond_timedwait (cond=0x55dcb08a97e8, mutex=0x55dcb08a97c0, abstime=0x7f5449d80c80) at pthread_cond_wait.c:667
#3 0x00007f5460a1b6b5 in QWaitConditionPrivate::wait_relative (this=0x55dcb08a97c0, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4 QWaitConditionPrivate::wait (deadline=..., this=0x55dcb08a97c0) at thread/qwaitcondition_unix.cpp:144
#5 QWaitCondition::wait (this=<optimized out>, mutex=0x55dcb08113b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6 0x00007f5460a1b7e6 in QWaitCondition::wait (this=this@entry=0x55dcb08a7180, mutex=mutex@entry=0x55dcb08113b0, time=<optimized out>) at thread/qwaitcondition_unix.cpp:209
#7 0x00007f5460a18de1 in QThreadPoolThread::run (this=0x55dcb08a7170) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:240
#8 0x00007f5460a15612 in QThreadPrivate::start (arg=0x55dcb08a7170) at thread/qthread_unix.cpp:361
#9 0x00007f545ee8d182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#10 0x00007f54606a1b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f544a582700 (LWP 25789)):
#0 futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7f544a581bd0, expected=0, futex_word=0x55dcb0768d80) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1 __pthread_cond_wait_common (abstime=0x7f544a581c80, mutex=0x55dcb0768d30, cond=0x55dcb0768d58) at pthread_cond_wait.c:533
#2 __pthread_cond_timedwait (cond=0x55dcb0768d58, mutex=0x55dcb0768d30, abstime=0x7f544a581c80) at pthread_cond_wait.c:667
#3 0x00007f5460a1b6b5 in QWaitConditionPrivate::wait_relative (this=0x55dcb0768d30, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4 QWaitConditionPrivate::wait (deadline=..., this=0x55dcb0768d30) at thread/qwaitcondition_unix.cpp:144
#5 QWaitCondition::wait (this=<optimized out>, mutex=0x55dcb08113b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6 0x00007f5460a1b7e6 in QWaitCondition::wait (this=this@entry=0x55dcb08a9370, mutex=mutex@entry=0x55dcb08113b0, time=<optimized out>) at thread/qwaitcondition_unix.cpp:209
#7 0x00007f5460a18de1 in QThreadPoolThread::run (this=0x55dcb08a9360) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:240
#8 0x00007f5460a15612 in QThreadPrivate::start (arg=0x55dcb08a9360) at thread/qthread_unix.cpp:361
#9 0x00007f545ee8d182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#10 0x00007f54606a1b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f5459a37700 (LWP 25786)):
#0 0x00007f545e433b14 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007f545e3e8680 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007f545e3e8cc0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007f545e3e8e3c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007f5460c1e063 in QEventDispatcherGlib::processEvents (this=0x7f544c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#5 0x00007f5460bc95bb in QEventLoop::exec (this=this@entry=0x7f5459a36d30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#6 0x00007f5460a142c6 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#7 0x00007f5460e96565 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#8 0x00007f5460a15612 in QThreadPrivate::start (arg=0x7f5460f16d80) at thread/qthread_unix.cpp:361
#9 0x00007f545ee8d182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#10 0x00007f54606a1b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f545aff4700 (LWP 25785)):
#0 0x00007f5460695729 in __GI___poll (fds=0x7f545aff3c68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f545ee4a917 in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007f545ee4c53a in xcb_wait_for_event () from /lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007f545b9c26a8 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4 0x00007f5460a15612 in QThreadPrivate::start (arg=0x55dcb029fc20) at thread/qthread_unix.cpp:361
#5 0x00007f545ee8d182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f54606a1b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f545c0776c0 (LWP 25783)):
[KCrash Handler]
#6 0x00007f543b9e5954 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kded_touchpad.so
#7 0x00007f546164b7c2 in QWidgetItemV2::updateCacheIfNecessary (this=0x55dcb0c3c5b0) at kernel/qlayoutitem.cpp:724
#8 QWidgetItemV2::updateCacheIfNecessary (this=0x55dcb0c3c5b0) at kernel/qlayoutitem.cpp:719
#9 0x00007f546164bafd in QWidgetItemV2::maximumSize (this=0x55dcb0c3c5b0) at kernel/qlayoutitem.cpp:812
#10 QWidgetItemV2::maximumSize (this=0x55dcb0c3c5b0) at kernel/qlayoutitem.cpp:806
#11 0x00007f54616400a2 in QBoxLayoutPrivate::setupGeom (this=this@entry=0x55dcb0c3c240) at kernel/qboxlayout.cpp:289
#12 0x00007f5461640d98 in QBoxLayoutPrivate::setupGeom (this=0x55dcb0c3c240) at kernel/qboxlayout.cpp:256
#13 QBoxLayout::minimumSize (this=<optimized out>) at kernel/qboxlayout.cpp:627
#14 0x00007f546164788d in QLayout::totalMinimumSize (this=0x55dcb0c3c090) at kernel/qlayout.cpp:693
#15 0x00007f5461649594 in qSmartMinSize (w=0x55dcb0c3b860) at kernel/qlayoutengine.cpp:387
#16 0x00007f54617b5173 in QScrollAreaPrivate::updateScrollBars (this=0x55dcb0c35610) at /usr/include/c++/8/bits/atomic_base.h:390
#17 0x00007f546166a53e in QWidget::event (this=this@entry=0x55dcb095dbd0, event=event@entry=0x7ffdef7a4380) at kernel/qwidget.cpp:9096
#18 0x00007f546170e6ce in QFrame::event (this=0x55dcb095dbd0, e=0x7ffdef7a4380) at widgets/qframe.cpp:550
#19 0x00007f5460bca5fb in QCoreApplicationPrivate::sendThroughObjectEventFilters (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1186
#20 QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x55dcb095d660, event=event@entry=0x7ffdef7a4380) at kernel/qcoreapplication.cpp:1175
#21 0x00007f546162a541 in QApplicationPrivate::notify_helper (this=this@entry=0x55dcb027eac0, receiver=receiver@entry=0x55dcb095d660, e=e@entry=0x7ffdef7a4380) at kernel/qapplication.cpp:3728
#22 0x00007f5461631930 in QApplication::notify (this=0x7ffdef7a5440, receiver=0x55dcb095d660, e=0x7ffdef7a4380) at kernel/qapplication.cpp:3483
#23 0x00007f5460bca8e9 in QCoreApplication::notifyInternal2 (receiver=0x55dcb095d660, event=0x7ffdef7a4380) at ../../include/QtCore/5.12.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
#24 0x00007f54616626c6 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb0c36630, recursive=<optimized out>, disableUpdates=<optimized out>) at kernel/qwidget.cpp:7962
#25 0x00007f5461662629 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb0c35610, recursive=<optimized out>, disableUpdates=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#26 0x00007f5461662629 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb0688f60, recursive=<optimized out>, disableUpdates=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#27 0x00007f5461662629 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb04ae480, recursive=<optimized out>, disableUpdates=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#28 0x00007f5461662629 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb03df9b0, recursive=<optimized out>, disableUpdates=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#29 0x00007f5461662629 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x55dcb026f610, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#30 0x00007f5461666817 in QWidgetPrivate::prepareToRender (this=this@entry=0x55dcb026f610, region=..., renderFlags=..., renderFlags@entry=...) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#31 0x00007f5461666ed6 in QWidget::render (this=<optimized out>, painter=0x7ffdef7a4838, targetOffset=..., sourceRegion=..., renderFlags=...) at kernel/qwidget.cpp:5156
#32 0x00007f5459af98f4 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so
#33 0x00007f5459af8d25 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so
#34 0x00007f5459ae229a in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so
#35 0x00007f5460bf4426 in QMetaObject::activate (sender=0x55dcb07f8c70, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3793
#36 0x00007f5461724451 in QComboBox::currentIndexChanged (this=this@entry=0x55dcb07f8c70, _t1=<optimized out>) at .moc/moc_qcombobox.cpp:509
#37 0x00007f5461726483 in QComboBoxPrivate::_q_emitCurrentIndexChanged (this=this@entry=0x55dcb04997d0, index=...) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:62
#38 0x00007f5461728a9b in QComboBoxPrivate::setCurrentIndex (this=this@entry=0x55dcb04997d0, mi=...) at widgets/qcombobox.cpp:2192
#39 0x00007f5461728cb1 in QComboBox::setCurrentIndex (this=<optimized out>, index=66) at widgets/qcombobox.cpp:2154
#40 0x00007f544a890c58 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_keyboard.so
#41 0x00007f544a89364e in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_keyboard.so
#42 0x00007f544a88f146 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_keyboard.so
#43 0x00007f5461f8c5d9 in KCModule::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at ./obj-x86_64-linux-gnu/src/KF5ConfigWidgets_autogen/EWIEGA46WW/moc_kcmodule.cpp:110
#44 0x00007f5460bf4ca2 in QObject::event (this=this@entry=0x55dcb075f0c0, e=e@entry=0x55dcb07bc390) at kernel/qobject.cpp:1260
#45 0x00007f5461669feb in QWidget::event (this=0x55dcb075f0c0, event=0x55dcb07bc390) at kernel/qwidget.cpp:9383
#46 0x00007f546162a551 in QApplicationPrivate::notify_helper (this=this@entry=0x55dcb027eac0, receiver=receiver@entry=0x55dcb075f0c0, e=e@entry=0x55dcb07bc390) at kernel/qapplication.cpp:3736
#47 0x00007f5461631930 in QApplication::notify (this=0x7ffdef7a5440, receiver=0x55dcb075f0c0, e=0x55dcb07bc390) at kernel/qapplication.cpp:3483
#48 0x00007f5460bca8e9 in QCoreApplication::notifyInternal2 (receiver=0x55dcb075f0c0, event=0x55dcb07bc390) at ../../include/QtCore/5.12.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
#49 0x00007f5460bcd927 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55dcb0276000) at kernel/qcoreapplication.cpp:1799
#50 0x00007f5460c1ea43 in postEventSourceDispatch (s=0x55dcb0343f90) at kernel/qeventdispatcher_glib.cpp:276
#51 0x00007f545e3e8b0e in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007f545e3e8da8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f545e3e8e3c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007f5460c1e047 in QEventDispatcherGlib::processEvents (this=0x55dcb033bea0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#55 0x00007f5460bc95bb in QEventLoop::exec (this=this@entry=0x7ffdef7a5360, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#56 0x00007f5460bd15e2 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#57 0x000055dcafa3c639 in ?? ()
#58 0x00007f54605aab6b in __libc_start_main (main=0x55dcafa3c250, argc=1, argv=0x7ffdef7a5588, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdef7a5578) at ../csu/libc-start.c:308
#59 0x000055dcafa3c6ba in _start ()
[Inferior 1 (process 25783) detached]

ProblemType: Crash
DistroRelease: Ubuntu 19.10
Package: systemsettings 4:5.15.90-0ubuntu1
ProcVersionSignature: Ubuntu 5.0.0-16.17-generic 5.0.8
Uname: Linux 5.0.0-16-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu2
Architecture: amd64
CurrentDesktop: KDE
Date: Sat Jun 8 18:02:55 2019
ExecutablePath: /usr/bin/systemsettings5
InstallationDate: Installed on 2019-06-02 (6 days ago)
InstallationMedia: Kubuntu 19.10 "Eoan Ermine" - Alpha amd64 (20190531)
ProcCmdline: /bin/systemsettings5
ProcEnviron:
 LANGUAGE=nl
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=nl_NL.UTF-8
 SHELL=/bin/bash
Signal: 11
SourcePackage: systemsettings
StacktraceTop:
 ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kded_touchpad.so
 QWidgetItemV2::updateCacheIfNecessary (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:724
 QWidgetItemV2::updateCacheIfNecessary (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:719
 QWidgetItemV2::maximumSize (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:812
 QWidgetItemV2::maximumSize (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:806
Title: systemsettings5 crashed with SIGSEGV in QWidgetItemV2::updateCacheIfNecessary()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
separator:

Revision history for this message
In , Darin Miller (darinmiller) wrote :

SUMMARY
Touchpad crashes when selected System Setting -> Input -> touchpad or launching touchpad directly via krunner on a desktop system that does not have a touchpad

STEPS TO REPRODUCE
1. On a desktop that does not have a touchpad, select System Setting -> Input -> Touchpad

OBSERVED RESULT
System settings crashes immediately.

EXPECTED RESULT
"Greyed out" Touchpad options and system settings not crashing.

SOFTWARE/OS VERSIONS
Operating System: Kubuntu 19.04
KDE Plasma Version: 5.15.90
KDE Frameworks Version: 5.58.0
Qt Version: 5.12.2
Kernel Version: 5.0.0-15-generic
OS Type: 64-bit
Processors: 8 × Intel® Core™ i7-4771 CPU @ 3.50GHz
Memory: 15.5 GiB of RAM

ADDITIONAL INFORMATION:

Crash report: https://paste.ubuntu.com/p/tZCXq6HhBH/

Revision history for this message
In , Rik Mills (rikmills) wrote :

Also reproducible in KDE Neon testing edition.

Revision history for this message
In , Rik Mills (rikmills) wrote :
Download full text (14.9 KiB)

Thread 1 (Thread 0x7f35a92b46c0 (LWP 5549)):
[KCrash Handler]
#6 0x00007f358807a954 in TouchpadConfigContainer::sizeHint (this=<optimized out>) at ./kcms/touchpad/src/kcm/touchpadconfigcontainer.cpp:70
#7 0x00007f35ae8817c2 in QWidgetItemV2::updateCacheIfNecessary (this=0x55cdb8dcacf0) at kernel/qlayoutitem.cpp:724
#8 QWidgetItemV2::updateCacheIfNecessary (this=0x55cdb8dcacf0) at kernel/qlayoutitem.cpp:719
#9 0x00007f35ae881afd in QWidgetItemV2::maximumSize (this=0x55cdb8dcacf0) at kernel/qlayoutitem.cpp:812
#10 QWidgetItemV2::maximumSize (this=0x55cdb8dcacf0) at kernel/qlayoutitem.cpp:806
#11 0x00007f35ae8760a2 in QBoxLayoutPrivate::setupGeom (this=this@entry=0x55cdb9628170) at kernel/qboxlayout.cpp:289
#12 0x00007f35ae876d48 in QBoxLayoutPrivate::setupGeom (this=0x55cdb9628170) at kernel/qboxlayout.cpp:256
#13 QBoxLayout::sizeHint (this=<optimized out>) at kernel/qboxlayout.cpp:616
#14 0x00007f35ae87d8d7 in QLayout::totalSizeHint (this=0x55cdb9701120) at kernel/qlayout.cpp:719
#15 0x00007f35ae9eabaa in QScrollArea::sizeHint (this=<optimized out>) at /usr/include/c++/8/bits/atomic_base.h:390
#16 0x00007f35ae8835b2 in QStackedLayout::sizeHint (this=<optimized out>) at kernel/qstackedlayout.cpp:444
#17 0x00007f35ae87d8d7 in QLayout::totalSizeHint (this=0x55cdb7c25a40) at kernel/qlayout.cpp:719
#18 0x00007f35ae8817c2 in QWidgetItemV2::updateCacheIfNecessary (this=0x55cdb7c286f0) at kernel/qlayoutitem.cpp:724
#19 QWidgetItemV2::updateCacheIfNecessary (this=0x55cdb7c286f0) at kernel/qlayoutitem.cpp:719
#20 0x00007f35ae881aad in QWidgetItemV2::minimumSize (this=0x55cdb7c286f0) at kernel/qlayoutitem.cpp:799
#21 QWidgetItemV2::minimumSize (this=0x55cdb7c286f0) at kernel/qlayoutitem.cpp:793
#22 0x00007f35ae87a20d in QGridBox::minimumSize (this=0x55cdb7c28490) at kernel/qgridlayout.cpp:74
#23 QGridLayoutPrivate::setupLayoutData (this=this@entry=0x55cdb7c25500, hSpacing=hSpacing@entry=6, vSpacing=vSpacing@entry=6) at kernel/qgridlayout.cpp:810
#24 0x00007f35ae87b523 in QGridLayoutPrivate::distribute (this=this@entry=0x55cdb7c25500, r=..., hSpacing=6, vSpacing=vSpacing@entry=6) at kernel/qgridlayout.cpp:940
#25 0x00007f35ae87c322 in QGridLayout::setGeometry (this=0x55cdb7c254b0, rect=...) at kernel/qgridlayout.cpp:1385
#26 0x00007f35ae87d738 in QLayoutPrivate::doResize (this=this@entry=0x55cdb7c25500, r=...) at ../../include/QtCore/../../src/corelib/tools/qrect.h:184
#27 0x00007f35ae87e7c9 in QLayout::activate (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qsize.h:119
#28 0x00007f35ae89f61f in QWidgetPrivate::setVisible (this=0x55cdb8ef55a0, visible=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131
#29 0x00007f35ae883bb6 in QStackedLayout::setCurrentIndex (this=0x55cdb7c25a40, index=1) at kernel/qstackedlayout.cpp:321
#30 0x00007f35ae883e58 in QStackedLayout::setCurrentWidget (this=0x55cdb7c25a40, widget=widget@entry=0x55cdb96c96e0) at kernel/qstackedlayout.cpp:376
#31 0x00007f35aea007c5 in QStackedWidget::setCurrentWidget (this=<optimized out>, widget=0x55cdb96c96e0) at widgets/qstackedwidget.cpp:248
#32 0x00007f35af0b9125 in KPageViewPrivate::_k_pageSelected (previous=..., index=..., this=0x...

Revision history for this message
In , Rik Mills (rikmills) wrote :

I can also replicate this in OpenSuse Tumbleweed with Plasma 5.16 beta packages.

Revision history for this message
In , Bizyaev (bizyaev) wrote :
Download full text (21.8 KiB)

SUMMARY

STEPS TO REPRODUCE
1. Click the touchpad KCM. Only happens sometimes, not yet sure what it depends on.

OBSERVED RESULT
Crash:
Application: Параметры системы (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
29 return SYSCALL_CANCEL (poll, fds, nfds, timeout);
[Current thread is 1 (Thread 0x7fd9a2a1e940 (LWP 18470))]

Thread 6 (Thread 0x7fd969fc3700 (LWP 18478)):
#0 0x00007fd99df62c98 in __GI___libc_read (fd=15, buf=0x7fd969fc2a30, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:26
#1 0x00007fd996f9dca0 in ?? () from /usr/lib64/libglib-2.0.so.0
#2 0x00007fd996f58cb8 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3 0x00007fd996f59150 in ?? () from /usr/lib64/libglib-2.0.so.0
#4 0x00007fd996f592bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5 0x00007fd99e8a699b in QEventDispatcherGlib::processEvents (this=0x7fd964000b10, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6 0x00007fd99e847c0a in QEventLoop::exec (this=this@entry=0x7fd969fc2c50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7 0x00007fd99e66f04a in QThread::exec (this=this@entry=0x55a9a5ace910) at thread/qthread.cpp:531
#8 0x00007fd99c43cd95 in QQmlThreadPrivate::run (this=0x55a9a5ace910) at /usr/src/debug/libqt5-qtdeclarative-5.12.3-lp151.1.1.x86_64/src/qml/qml/ftw/qqmlthread.cpp:148
#9 0x00007fd99e6707f2 in QThreadPrivate::start (arg=0x55a9a5ace910) at thread/qthread_unix.cpp:361
#10 0x00007fd9995e7569 in start_thread (arg=0x7fd969fc3700) at pthread_create.c:465
#11 0x00007fd99df719ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fd9728fd700 (LWP 18477)):
#0 0x00007fd996f9efd9 in g_mutex_lock () from /usr/lib64/libglib-2.0.so.0
#1 0x00007fd996f581d4 in g_main_context_release () from /usr/lib64/libglib-2.0.so.0
#2 0x00007fd996f59166 in ?? () from /usr/lib64/libglib-2.0.so.0
#3 0x00007fd996f592bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4 0x00007fd99e8a699b in QEventDispatcherGlib::processEvents (this=0x7fd96c000b10, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#5 0x00007fd99e847c0a in QEventLoop::exec (this=this@entry=0x7fd9728fcc50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6 0x00007fd99e66f04a in QThread::exec (this=this@entry=0x55a9a551b9e0) at thread/qthread.cpp:531
#7 0x00007fd99c43cd95 in QQmlThreadPrivate::run (this=0x55a9a551b9e0) at /usr/src/debug/libqt5-qtdeclarative-5.12.3-lp151.1.1.x86_64/src/qml/qml/ftw/qqmlthread.cpp:148
#8 0x00007fd99e6707f2 in QThreadPrivate::start (arg=0x55a9a551b9e0) at thread/qthread_unix.cpp:361
#9 0x00007fd9995e7569 in start_thread (arg=0x7fd9728fd700) at pthread_create.c:465
#10 0x00007fd99df719ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fd97a3ff700 (LWP 18474)):
#0 0x00007fd9995ed8ad in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55a9a50e559c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x55a9a50e5548, cond=0x55a9a50e5570) at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0x55a9a50e5570, mutex=0...

Revision history for this message
In , Nate-b (nate-b) wrote :

Confirmed. :(

Revision history for this message
André Verwijs (verwijs) wrote :
information type: Private → Public
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 TouchpadConfigContainer::sizeHint (this=<optimized out>) at ./kcms/touchpad/src/kcm/touchpadconfigcontainer.cpp:70
 QWidgetItemV2::updateCacheIfNecessary (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:724
 QWidgetItemV2::updateCacheIfNecessary (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:719
 QWidgetItemV2::maximumSize (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:812
 QWidgetItemV2::maximumSize (this=0x556844cfcf40) at kernel/qlayoutitem.cpp:806

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in systemsettings (Ubuntu):
importance: Undecided → Medium
summary: systemsettings5 crashed with SIGSEGV in
- QWidgetItemV2::updateCacheIfNecessary()
+ TouchpadConfigContainer::sizeHint()
tags: removed: need-amd64-retrace
Revision history for this message
Rik Mills (rikmills) wrote :

Previously reported upstream to KDE in https://bugs.kde.org/show_bug.cgi?id=407783

Changed in systemsettings (Ubuntu):
status: New → Confirmed
Changed in systemsettings:
importance: Unknown → High
Revision history for this message
In , Nate-b (nate-b) wrote :

*** Bug 408627 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Yanpas (yanpaso) wrote :

Created attachment 120868
New crash information added by DrKonqi

systemsettings5 (5.16.0) using Qt 5.12.2

- What I was doing when the application crashed:
i dont' have touchpad and open touchpad setting and get crash

- Unusual behavior I noticed:

- Custom settings of the application:

-- Backtrace (Reduced):
#7 0x00007f389e2ef7c2 in QWidgetItemV2::updateCacheIfNecessary() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007f389e2efafd in QWidgetItemV2::maximumSize() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
[...]
#10 0x00007f389e2e4d48 in QBoxLayout::sizeHint() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f389e2eb8d7 in QLayout::totalSizeHint() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f389e458baa in QScrollArea::sizeHint() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5

Revision history for this message
In , Arojas-8 (arojas-8) wrote :

*** Bug 408713 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Cfeck (cfeck) wrote :

*** Bug 408815 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Cfeck (cfeck) wrote :

*** Bug 408794 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Cfeck (cfeck) wrote :

*** Bug 408745 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Cfeck (cfeck) wrote :

*** This bug has been marked as a duplicate of bug 408325 ***

Revision history for this message
In , Cfeck (cfeck) wrote :

*** Bug 407783 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Nate-b (nate-b) wrote :

*** Bug 408844 has been marked as a duplicate of this bug. ***

Changed in systemsettings:
status: Unknown → Invalid
Rik Mills (rikmills)
Changed in systemsettings:
importance: High → Unknown
status: Invalid → Unknown
Changed in systemsettings:
importance: Unknown → Critical
Revision history for this message
In , SiLeNcE (bastian-beischer) wrote :

*** Bug 408839 has been marked as a duplicate of this bug. ***

Revision history for this message
In , SiLeNcE (bastian-beischer) wrote :

I believe this bug is triggered for X11 on systems which do not actually have a touchpad. I think the problem is:

Since

https://github.com/KDE/plasma-desktop/commit/ce84d6ab4babc80707f4e4c1deb02cfe3ac5b7bb

TouchpadConfigContainer::m_plugin is null, because TouchpadBackend::implementation() does not have m_mode properly set. setMode() is supposed to be called in XlibBackend::findTouchpad(), but this goes through the list of touchpads, which can be none, and calls setMode() on each such touchpad.

So setMode() is never actually called and m_mode is (implicitly!) initialized to WaylandLibinput (since it does not get set in TouchpadBackend constructor). Then getMode() does not return any of the expected cases in isPlatformX11() branch, which means m_plugin stays a nullptr and then there is a crash in TouchpadConfigContainer::sizeHint().

Revision history for this message
In , SiLeNcE (bastian-beischer) wrote :

Proposed fix:

--- a/kcms/touchpad/src/kcm/touchpadconfigcontainer.cpp 2019-06-07 18:08:11.000000000 +0200
+++ b/kcms/touchpad/src/kcm/touchpadconfigcontainer.cpp 2019-06-18 14:20:11.853007246 +0200
@@ -42,7 +42,7 @@
         if (backend->getMode() == TouchpadInputBackendMode::XLibinput) {
             m_plugin = new TouchpadConfigLibinput(this, backend);
         }
- else if (backend->getMode() == TouchpadInputBackendMode::XSynaptics) {
+ else {
             m_plugin = new TouchpadConfigXlib(this, backend);
         }
     } else if (KWindowSystem::isPlatformWayland()) {
diff -urN a/kcms/touchpad/src/touchpadbackend.h b/kcms/touchpad/src/touchpadbackend.h
--- a/kcms/touchpad/src/touchpadbackend.h 2019-06-07 18:08:11.000000000 +0200
+++ b/kcms/touchpad/src/touchpadbackend.h 2019-06-18 14:18:57.915432036 +0200
@@ -25,9 +25,10 @@
 #include <QVariantHash>

 enum class TouchpadInputBackendMode {
- WaylandLibinput = 0,
- XLibinput = 1,
- XSynaptics = 2
+ Unset = 0,
+ WaylandLibinput = 1,
+ XLibinput = 2,
+ XSynaptics = 3
 };

 class Q_DECL_EXPORT TouchpadBackend : public QObject
@@ -35,7 +36,7 @@
     Q_OBJECT

 protected:
- explicit TouchpadBackend(QObject *parent) : QObject(parent) {}
+ explicit TouchpadBackend(QObject *parent) : QObject(parent), m_mode(TouchpadInputBackendMode::Unset) {}
     void setMode(TouchpadInputBackendMode mode);

 public:

which will create the Synaptics backend as m_plugin in case of no touchpad (as in Plasma 5.15), which will show a message 'No touchpad found' and disable all controls.

Revision history for this message
In , Casey-jensen (casey-jensen) wrote :

So is this only an issue in X? I haven't been on my test machine (Surface Pro 2 w/ keyboard and touchpad cover) for a few days, but if all works in Wayland, I'll just make the switch over to a Wayland Session. That way I also get the added onscreen keyboard! :D

Thanks to all that are looking into and working on this! Please let me know if you need any additional info/data.

Revision history for this message
In , Nate-b (nate-b) wrote :

Thanks so much for the investigation and the proposed patch, Bastian! Would you mind submitting it using Phabricator? It's dead simple to just copy-and-paste your diff into https://phabricator.kde.org/differential/diff/create/. Please mark @ngraham, @romangg, @atulbi, and #plasma as reviewers.

Full documentation is available at https://community.kde.org/Infrastructure/Phabricator

Revision history for this message
In , SiLeNcE (bastian-beischer) wrote :
Revision history for this message
In , Nate-b (nate-b) wrote :

Thanks very much! I'll see if we can get some eyeballs on that in the next few days.

Revision history for this message
In , Eric Donkersloot (ericd) wrote :

Hi guys,

I guess I'm subscribed to the wrong bug report. This is teh behaviour I'm seeing since 5.16:

On 5.15.5 (libunput installed, no xf86-input-synaptics installed):

1. Everything works fine, no crashes whatsoever
2. When I connect a bluetooth mouse, the touchpad disables as expected
3. When I disconnect the bluetooth mouse again, the touchpad is re-enabled

On 5.16 (libinput installed, no xf86-input-synatics installed):

1. kdeinit5 crashes after logging in
2. When I connect a bluetooth mouse, the touchpad disables as expected
3. When I disconnect the bluetooth mouse again, the touchpad is _not_ re-enabled

A workaround for the behaviour above:

1. Manually enable the touchpad again
2. Log out and log in again
3. Install xf86-input-synaptics, this will also prevent kdeinit5 from crashing

My system:

Lenovo X1 Carbon 6th gen
Operating System: Arch Linux
KDE Plasma Version: 5.16.0
KDE Frameworks Version: 5.59.0
Qt Version: 5.12.4
Kernel Version: 5.1.11-arch1-1-ARCH
OS Type: 64-bit
Processors: 8 × Intel® Core™ i7-8550U CPU @ 1.80GHz
Memory: 15,4 GiB of RAM

Should a file another bug?

Revision history for this message
In , Nate-b (nate-b) wrote :

Git commit b7127724309a136a1a8647341df9f5ad02b22698 by Nate Graham, on behalf of Bastian Beischer.
Committed on 19/06/2019 at 16:39.
Pushed by ngraham into branch 'Plasma/5.16'.

[Touchpad KCM] Do not crash in case there is no touchpad

Summary:
FIXED-IN: 5.16.2

Reviewers: ngraham, romangg, atulbi, #plasma, davidedmundson

Reviewed By: ngraham, romangg, #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D21884

M +4 -1 kcms/touchpad/src/kcm/touchpadconfigcontainer.cpp
M +5 -4 kcms/touchpad/src/touchpadbackend.h

https://commits.kde.org/plasma-desktop/b7127724309a136a1a8647341df9f5ad02b22698

Revision history for this message
In , Nate-b (nate-b) wrote :

Thanks so much, Bastian!

Eric, that's a separate issue. Please file a new bug for it.

Changed in systemsettings:
importance: Critical → High
status: Unknown → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote :

The Eoan Ermine has reached end of life, so this bug will not be fixed for that release

Changed in systemsettings (Ubuntu Eoan):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.