Bug 333767 - Crash when trying to set window rules
Summary: Crash when trying to set window rules
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: rules (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/117...
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-04-23 11:40 UTC by David Edmundson
Modified: 2020-10-25 13:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.19
Sentry Crash Report:
thomas.luebking: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Edmundson 2014-04-23 11:40:21 UTC
Application: kcmshell4 (4.13.60)
KDE Platform Version: 4.13.60 (Compiled from sources)
Qt Version: 4.8.5
Operating System: Linux 3.13.5-1-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
I was setting a window rule, I clicked on detect window properties I did this a few times at some point it crashed.

-- Backtrace:
Application: KDE Control Module (kcmshell4), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
To enable execution of this file add
	add-auto-load-safe-path /usr/lib/libstdc++.so.6.0.19-gdb.py
line to your configuration file "/home/david/.gdbinit".
To completely disable this security protection add
	set auto-load safe-path /
line to your configuration file "/home/david/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
	info "(gdb)Auto-loading safe path"
[Current thread is 1 (Thread 0x7ff320d49780 (LWP 8435))]

Thread 2 (Thread 0x7ff3047a9700 (LWP 8437)):
#0  0x00007ff31f3cb04f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007ff30ae63fcb in ?? () from /usr/lib/libQtScript.so.4
#2  0x00007ff30ae64009 in ?? () from /usr/lib/libQtScript.so.4
#3  0x00007ff31f3c70a2 in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007ff31d9e0d1d in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ff320d49780 (LWP 8435)):
[KCrash Handler]
#6  KWin::DetectDialog::selectedClass (this=0x0) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/detectwidget.cpp:124
#7  0x00007ff2834a5c80 in KWin::RulesWidget::detected (this=0x23c6ef0, ok=<optimized out>) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/ruleswidget.cpp:615
#8  0x00007ff2834a728c in KWin::RulesWidget::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at /home/david/projects/kde4/build/kde-workspace/kwin/kcmkwin/kwinrules/ruleswidget.moc:159
#9  0x00007ff31f76ab48 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#10 0x00007ff2834c1d26 in detectionDone (_t1=true, this=0x248de10) at /home/david/projects/kde4/build/kde-workspace/kwin/kcmkwin/kwinrules/detectwidget.moc:165
#11 KWin::DetectDialog::executeDialog (this=this@entry=0x248de10) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/detectwidget.cpp:119
#12 0x00007ff2834c1f2a in KWin::DetectDialog::readWindow (this=0x248de10, w=<optimized out>) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/detectwidget.cpp:89
#13 0x00007ff2834c25c3 in KWin::DetectDialog::eventFilter (this=0x248de10, o=<optimized out>, e=<optimized out>) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/detectwidget.cpp:201
#14 0x00007ff31f757026 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#15 0x00007ff31e8de0bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007ff31e8e47dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007ff32078682a in KApplication::notify (this=0x7fff6248e008, receiver=0x249fcf0, event=0x7fff6248cab0) at /home/david/projects/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:311
#18 0x00007ff31f756ebd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#19 0x00007ff31e8e3f93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#20 0x00007ff31e955bab in ?? () from /usr/lib/libQtGui.so.4
#21 0x00007ff31e95461c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#22 0x00007ff31e97bad0 in ?? () from /usr/lib/libQtGui.so.4
#23 0x00007ff31f755b1f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#24 0x00007ff31f755e15 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#25 0x00007ff31ed8096c in QDialog::exec() () from /usr/lib/libQtGui.so.4
#26 0x00007ff2834a64cd in KWin::RulesDialog::edit (this=this@entry=0x7fff6248d130, r=r@entry=0x0, window=window@entry=0, show_hints=show_hints@entry=false) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/ruleswidget.cpp:769
#27 0x00007ff2834b5c8f in KWin::KCMRulesList::newClicked (this=0x2120d50) at /home/david/projects/kde4/src/kde-workspace/kwin/kcmkwin/kwinrules/ruleslist.cpp:87
#28 0x00007ff2834b76ed in KWin::KCMRulesList::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at /home/david/projects/kde4/build/kde-workspace/kwin/kcmkwin/kwinrules/ruleslist.moc:63
#29 0x00007ff31f76ab48 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#30 0x00007ff31ef26a82 in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4
#31 0x00007ff31ec8b243 in ?? () from /usr/lib/libQtGui.so.4
#32 0x00007ff31ec8c3b3 in ?? () from /usr/lib/libQtGui.so.4
#33 0x00007ff31ec8c49c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#34 0x00007ff31e92d62e in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#35 0x00007ff31e8de0dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#36 0x00007ff31e8e47dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#37 0x00007ff32078682a in KApplication::notify (this=0x7fff6248e008, receiver=0x20f8640, event=0x7fff6248d7d0) at /home/david/projects/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:311
#38 0x00007ff31f756ebd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#39 0x00007ff31e8e3f93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#40 0x00007ff31e955bab in ?? () from /usr/lib/libQtGui.so.4
#41 0x00007ff31e95461c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#42 0x00007ff31e97bad0 in ?? () from /usr/lib/libQtGui.so.4
#43 0x00007ff31f755b1f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#44 0x00007ff31f755e15 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#45 0x00007ff31ed8096c in QDialog::exec() () from /usr/lib/libQtGui.so.4
#46 0x00007ff320dc8c1a in kdemain (_argc=<optimized out>, _argv=<optimized out>) at /home/david/projects/kde4/src/kde-runtime/kcmshell/main.cpp:297
#47 0x0000000000407f60 in launch (argc=argc@entry=13, _name=_name@entry=0x1c93348 "kcmshell4", args=0x1c933f2 "\001", args@entry=0x1c93352 "--icon", cwd=cwd@entry=0x0, envc=envc@entry=1, envs=<optimized out>, envs@entry=0x1c933fa "DISPLAY=:0", reset_env=false, tty=tty@entry=0x0, avoid_loops=false, startup_id_str=startup_id_str@entry=0x40a6da "0") at /home/david/projects/kde4/src/kdelibs/kinit/kinit.cpp:726
#48 0x0000000000408dab in handle_launcher_request (sock=7, who=<optimized out>) at /home/david/projects/kde4/src/kdelibs/kinit/kinit.cpp:1218
#49 0x0000000000409427 in handle_requests (waitForPid=waitForPid@entry=5379) at /home/david/projects/kde4/src/kdelibs/kinit/kinit.cpp:1411
#50 0x0000000000405725 in main (argc=2, argv=<optimized out>, envp=0x7fff6248ec40) at /home/david/projects/kde4/src/kdelibs/kinit/kinit.cpp:1847

Reported using DrKonqi
Comment 1 Thomas Lübking 2014-04-23 22:22:21 UTC
#12 0x00007ff2834c1f2a in KWin::DetectDialog::readWindow (this=0x248de10,  ...
#11 KWin::DetectDialog::executeDialog (this=this@entry=0x248de10)
#6  KWin::DetectDialog::selectedClass (this=0x0)

-> emit detectionDone(exec() == KDialog::Accepted);

evil QDialog::exec() condition - needs QPointer guard.

I'm really curious - do you know how you managed to do this? You would eg. "somehow" closed the dialog (but that's hardly possible in this condition - except for explicit dbus call)
You should have only be able to interact with the keyboard.
Comment 2 David Edmundson 2014-04-23 22:35:54 UTC
Nothing DBus, just clicking. I may have had a delay on the detect window properties.

I can't reproduce it when trying here now.
Comment 3 Ismael Asensio 2020-10-25 13:29:25 UTC
I'd consider this as fixed now we don't have this dialog