Bug 399644

Summary: System setting crash using Window-Specific Settings > Detect Window Properties
Product: [Plasma] kwin Reporter: ascaris
Component: rulesAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: kde
Priority: NOR Keywords: drkonqi
Version: 5.14.0   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.12.8
Sentry Crash Report:

Description ascaris 2018-10-11 07:54:34 UTC
Application: systemsettings5 (5.14.0)

Qt Version: 5.11.1
Frameworks Version: 5.50.0
Operating System: Linux 4.18.13-041813-generic x86_64
Distribution: KDE neon User Edition 5.14

-- Information about the crash:
- What I was doing when the application crashed:  I set the timer to a few seconds of display and click over to the Plasma desktop background.  It has no effect.  Try again, and it crashes, reliably, on both my machines (Sandy desktop and Apollo Lake laptop) running KDE.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f353674a840 (LWP 9020))]

Thread 5 (Thread 0x7f34f7c16700 (LWP 9039)):
#0  0x00007f3531d580b4 in __GI___libc_read (fd=26, buf=0x7f34f7c15b9e, nbytes=10) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f350c9ddff1 in pa_read () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#2  0x00007f350ce619fe in pa_mainloop_prepare () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007f350ce62470 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007f350ce62530 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007f350ce70399 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007f350ca0d2a8 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#7  0x00007f352d4746db in start_thread (arg=0x7f34f7c16700) at pthread_create.c:463
#8  0x00007f3531d6988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f350ae83700 (LWP 9027)):
#0  0x00007f3531d5cbf9 in __GI___poll (fds=0x7f3504004a00, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f352b0b6439 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f352b0b654c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3532697a9b in QEventDispatcherGlib::processEvents (this=0x7f3504000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f353263bdea in QEventLoop::exec (this=this@entry=0x7f350ae82d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#5  0x00007f3532466b8a in QThread::exec (this=<optimized out>) at thread/qthread.cpp:525
#6  0x00007f353016b8b5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f3532471aab in QThreadPrivate::start (arg=0x563cfdcf1db0) at thread/qthread_unix.cpp:367
#8  0x00007f352d4746db in start_thread (arg=0x7f350ae83700) at pthread_create.c:463
#9  0x00007f3531d6988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f351ac7d700 (LWP 9023)):
#0  0x00007f3531d5cbf9 in __GI___poll (fds=0x7f3514004db0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f352b0b6439 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f352b0b654c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3532697a9b in QEventDispatcherGlib::processEvents (this=0x7f3514000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f353263bdea in QEventLoop::exec (this=this@entry=0x7f351ac7cd30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#5  0x00007f3532466b8a in QThread::exec (this=<optimized out>) at thread/qthread.cpp:525
#6  0x00007f3532adfe45 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f3532471aab in QThreadPrivate::start (arg=0x7f3532d57d60) at thread/qthread_unix.cpp:367
#8  0x00007f352d4746db in start_thread (arg=0x7f351ac7d700) at pthread_create.c:463
#9  0x00007f3531d6988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f35230a0700 (LWP 9022)):
#0  0x00007f3531d5cbf9 in __GI___poll (fds=0x7f352309fc68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f352d038747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f352d03a36a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f3525a37129 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f3532471aab in QThreadPrivate::start (arg=0x563cfd84b400) at thread/qthread_unix.cpp:367
#5  0x00007f352d4746db in start_thread (arg=0x7f35230a0700) at pthread_create.c:463
#6  0x00007f3531d6988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f353674a840 (LWP 9020)):
[KCrash Handler]
#6  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#7  0x00007f3531c88801 in __GI_abort () at abort.c:79
#8  0x00007f3531c7839a in __assert_fail_base (fmt=0x7f3531dff7d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f34fe629b13 "detect_dlg == nullptr", file=file@entry=0x7f34fe628390 "/workspace/build/kcmkwin/kwinrules/ruleswidget.cpp", line=line@entry=686, function=function@entry=0x7f34fe62a080 <KWin::RulesWidget::detectClicked()::__PRETTY_FUNCTION__> "void KWin::RulesWidget::detectClicked()") at assert.c:92
#9  0x00007f3531c78412 in __GI___assert_fail (assertion=assertion@entry=0x7f34fe629b13 "detect_dlg == nullptr", file=file@entry=0x7f34fe628390 "/workspace/build/kcmkwin/kwinrules/ruleswidget.cpp", line=line@entry=686, function=function@entry=0x7f34fe62a080 <KWin::RulesWidget::detectClicked()::__PRETTY_FUNCTION__> "void KWin::RulesWidget::detectClicked()") at assert.c:101
#10 0x00007f34fe5f8a38 in KWin::RulesWidget::detectClicked (this=<optimized out>) at ./kcmkwin/kwinrules/ruleswidget.cpp:686
#11 0x00007f34fe625fb5 in KWin::RulesWidget::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at ./obj-x86_64-linux-gnu/kcmkwin/kwinrules/kcm_kwinrules_autogen/EWIEGA46WW/moc_ruleswidget.cpp:231
#12 0x00007f353266cad5 in QMetaObject::activate (sender=0x563d00189550, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3771
#13 0x00007f353373f0f2 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f353373f30a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f35337406ea in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f35337408dd in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f3533698b08 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007f3533659e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f3533661ff7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f353263dab8 in QCoreApplication::notifyInternal2 (receiver=0x563d00189550, event=0x7fff25d5e050) at kernel/qcoreapplication.cpp:1048
#21 0x00007f3533660942 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f35336b3c73 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f35336b6289 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f3533659e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f353366145f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f353263dab8 in QCoreApplication::notifyInternal2 (receiver=0x563cff4429e0, event=0x7fff25d5e450) at kernel/qcoreapplication.cpp:1048
#27 0x00007f3532e5e2ab in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007f3532e5fe55 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#29 0x00007f3532e38f0b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#30 0x00007f3525ac1edb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#31 0x00007f353263bdea in QEventLoop::exec (this=0x7fff25d5e6c0, flags=...) at kernel/qeventloop.cpp:214
#32 0x00007f3533848ba7 in QDialog::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f34fe5fb2f1 in KWin::RulesDialog::edit (this=this@entry=0x7fff25d5e760, r=r@entry=0x0, window=window@entry=0, show_hints=show_hints@entry=false) at ./kcmkwin/kwinrules/ruleswidget.cpp:895
#34 0x00007f34fe60e22d in KWin::KCMRulesList::newClicked (this=0x563d008a0790) at ./kcmkwin/kwinrules/ruleslist.cpp:85
#35 0x00007f34fe625c1d in KWin::KCMRulesList::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at ./obj-x86_64-linux-gnu/kcmkwin/kwinrules/kcm_kwinrules_autogen/EWIEGA46WW/moc_ruleslist.cpp:103
#36 0x00007f353266cad5 in QMetaObject::activate (sender=0x563d001608f0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3771
#37 0x00007f353373f0f2 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f353373f30a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f35337406ea in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007f35337408dd in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f3533698b08 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007f3533659e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007f3533661ff7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f353263dab8 in QCoreApplication::notifyInternal2 (receiver=0x563d001608f0, event=0x7fff25d5ede0) at kernel/qcoreapplication.cpp:1048
#45 0x00007f3533660942 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f35336b3c73 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007f35336b6289 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f3533659e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007f353366145f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007f353263dab8 in QCoreApplication::notifyInternal2 (receiver=0x563cfda21c70, event=0x7fff25d5f1e0) at kernel/qcoreapplication.cpp:1048
#51 0x00007f3532e5e2ab in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007f3532e5fe55 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#53 0x00007f3532e38f0b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#54 0x00007f3525ac1edb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#55 0x00007f353263bdea in QEventLoop::exec (this=this@entry=0x7fff25d5f450, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#56 0x00007f3532644fa0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1336
#57 0x0000563cfcffce69 in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:71

Possible duplicates by query: bug 386263, bug 382799.

Reported using DrKonqi
Comment 1 Kai Uwe Broulik 2018-10-11 08:05:17 UTC
Crashes the first time here, even.
Comment 2 Kai Uwe Broulik 2018-10-11 08:07:39 UTC
Nevermind, I accidentally clicked twice :D but I can confirm, clicking the button again while the timer is running triggers the assert
Comment 3 Kai Uwe Broulik 2018-10-12 11:51:52 UTC
Git commit 980e390743c153966dd364f4a0ebaadd8d1b03a5 by Kai Uwe Broulik.
Committed on 12/10/2018 at 11:51.
Pushed by broulik into branch 'Plasma/5.12'.

[kcmkwin/ruleswidget] Disable "Detect" button when countdown is running

Avoids triggering an assert and communicates that the timeout is running.
Ideally, there was a countdown label of some sort but this is better than crashing.
FIXED-IN: 5.12.8

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

M  +2    -0    kcmkwin/kwinrules/ruleswidget.cpp

https://commits.kde.org/kwin/980e390743c153966dd364f4a0ebaadd8d1b03a5