| Summary: | KWin crashes closing the settings dialog and then switching a window | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Jan <medhefgo> |
| Component: | core | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | Flags: | thomas.luebking:
ReviewRequest+
|
| Priority: | NOR | ||
| Version First Reported In: | git master | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| URL: | https://git.reviewboard.kde.org/r/124895/ | ||
| Latest Commit: | http://commits.kde.org/kwin/a97b6e0fd6a5eff53e3fccff825998feb4026a34 | Version Fixed/Implemented In: | 5.4.1 |
| Sentry Crash Report: | |||
| Attachments: | crash trace | ||
|
Description
Jan
2015-08-23 14:11:14 UTC
Created attachment 94184 [details]
crash trace
Attachments aren't searchable
---------
Continuing.
[Thread 0x7fd2cdc8f700 (LWP 18248) exited]
[Thread 0x7fd2d4dec700 (LWP 18246) exited]
Program received signal SIGSEGV, Segmentation fault.
0x00007fd2f062e16e in isNull (this=0xa31c60) at /usr/include/qt/QtCore/qsharedpointer_impl.h:585
585 inline bool isNull() const { return d == 0 || d->strongref.load() == 0 || value == 0; }
Thread 6 (Thread 0x7fd2d78f4700 (LWP 18245)):
#0 0x00007fd2f0abc18d in poll () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007fd2ee5919f2 in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#2 0x00007fd2ee59356f in xcb_wait_for_event () from /usr/lib/libxcb.so.1
No symbol table info available.
#3 0x00007fd2d8196ca9 in ?? () from /usr/lib/libQt5XcbQpa.so.5
No symbol table info available.
#4 0x00007fd2ee863a9e in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007fd2f0d874a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#6 0x00007fd2f0ac512d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 4 (Thread 0x7fd2cffff700 (LWP 18247)):
#0 0x00007fd2f0abde23 in select () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007fd2eea9691f in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#2 0x00007fd2eea983f7 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timespec*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#3 0x00007fd2eea988fe in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#4 0x00007fd2eea4226a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007fd2ee85eaf4 in QThread::exec() () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#6 0x00007fd2e8d21335 in ?? () from /usr/lib/libQt5Qml.so.5
No symbol table info available.
#7 0x00007fd2ee863a9e in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#8 0x00007fd2f0d874a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#9 0x00007fd2f0ac512d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 2 (Thread 0x7fd2cd48e700 (LWP 18249)):
#0 0x00007fd2f0d8d07f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
No symbol table info available.
#1 0x00007fd2ed7c0564 in ?? () from /usr/lib/libQt5Script.so.5
No symbol table info available.
#2 0x00007fd2ed7c05a9 in ?? () from /usr/lib/libQt5Script.so.5
No symbol table info available.
#3 0x00007fd2f0d874a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#4 0x00007fd2f0ac512d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7fd2f12a7840 (LWP 18244)):
#0 0x00007fd2f062e16e in isNull (this=0xa31c60) at /usr/include/qt/QtCore/qsharedpointer_impl.h:585
No locals.
#1 KWin::UserActionsMenu::hasClient (this=0xa31bb0) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/useractions.cpp:110
No locals.
#2 0x00007fd2f062904f in KWin::Workspace::setActiveClient (this=this@entry=0xa31970, c=c@entry=0x0) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/activation.cpp:237
blocker = <optimized out>
#3 0x00007fd2f062a102 in KWin::Workspace::activateNextClient (this=0xa31970, c=c@entry=0xba1f10) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/activation.cpp:446
get_focus = <optimized out>
desktop = <optimized out>
#4 0x00007fd2f062a24c in KWin::Workspace::clientHidden (this=<optimized out>, c=c@entry=0xba1f10) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/activation.cpp:410
__PRETTY_FUNCTION__ = "void KWin::Workspace::clientHidden(KWin::AbstractClient*)"
#5 0x00007fd2f05c6ebf in KWin::Client::internalHide (this=0xba1f10) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/client.cpp:977
old = KWin::Client::Mapped
#6 0x00007fd2f05c733d in updateVisibility (this=0xba1f10) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/client.cpp:740
No locals.
#7 KWin::Client::doMinimize (this=0xba1f10) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/client.cpp:734
No locals.
#8 0x00007fd2f05c0505 in KWin::AbstractClient::minimize (this=0xba1f10, avoid_animation=<optimized out>)
at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/abstract_client.cpp:375
avoid_animation = false
this = 0xba1f10
#9 0x00007fd2eea73eb1 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#10 0x00007fd2ef77e00c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
No symbol table info available.
#11 0x00007fd2ef7834e6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
No symbol table info available.
#12 0x00007fd2eea4489b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#13 0x00007fd2eea46c96 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#14 0x00007fd2eea987c2 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#15 0x00007fd2d81fd35d in ?? () from /usr/lib/libQt5XcbQpa.so.5
No symbol table info available.
#16 0x00007fd2eea4226a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#17 0x00007fd2eea4a20c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#18 0x00007fd2f0fa258f in kdemain (argc=2, argv=0x7ffd5669b6c8) at /tmp/yaourt-tmp-medhefgo/aur-kwin-git/src/kwin/main_x11.cpp:303
primaryScreen = 0
c = 0x0
number_of_screens = <optimized out>
a = {<KWin::Application> = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7fd2efe7f1a0 <QApplication::staticMetaObject>,
stringdata = 0x7fd2f077bcc0 <qt_meta_stringdata_KWin__Application>, data = 0x7fd2f077bbc0 <qt_meta_data_KWin__Application>,
static_metacall = 0x7fd2f072f670 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, m_originalSessionKey = {static null = {<No data fields>}, d = 0x7fd2eeaf7de0 <QArrayData::shared_null>}, m_eventFilter = {
d = 0x9930e0}, m_configLock = false, m_operationMode = KWin::Application::OperationModeX11, m_x11Time = 7145296, m_rootWindow = 191,
m_connection = 0x94c320, static crashes = 0}, static staticMetaObject = {d = {superdata = 0x7fd2f09d4220 <KWin::Application::staticMetaObject>,
stringdata = 0x7fd2f0fa3320 <qt_meta_stringdata_KWin__ApplicationX11>, data = 0x7fd2f0fa32c0 <qt_meta_data_KWin__ApplicationX11>,
static_metacall = 0x7fd2f0fa2c00 <KWin::ApplicationX11::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, owner = {d = 0x9987e0}, m_replace = true}
replaceOption = {d = {d = 0x99be20}}
parser = {d = 0x9a1500}
helper = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7fd2eee81b80 <QObject::staticMetaObject>,
stringdata = 0x7fd2f07714a0 <qt_meta_stringdata_KWin__SessionSaveDoneHelper>, data = 0x7fd2f0771440 <qt_meta_data_KWin__SessionSaveDoneHelper>,
static_metacall = 0x7fd2f07305b0 <KWin::SessionSaveDoneHelper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, notifier = 0x9bde00, conn = 0x9b1f70}
#19 0x00007fd2f09fc610 in __libc_start_main () from /usr/lib/libc.so.6
No symbol table info available.
#20 0x0000000000400819 in _start ()
No symbol table info available.
Notice that this backtrace is different from the other one and suggests that actually Workspace::m_userActionsMenu is garbage - what should totally not happen.
(It's constructed with the workspace and deleted with it)
Can you please apply
diff --git a/useractions.cpp b/useractions.cpp
index 9714a6e..ea422eb 100755
--- a/useractions.cpp
+++ b/useractions.cpp
@@ -98,6 +98,7 @@ UserActionsMenu::UserActionsMenu(QObject *parent)
UserActionsMenu::~UserActionsMenu()
{
discard();
+ abort();
}
bool UserActionsMenu::isShown() const
and post an updated backtrace (the abort should not happen until KWin exits)
Crash happens right after closing the settings window.
[Thread 0x7f49cb424700 (LWP 4629) exited]
[Thread 0x7f49d254f700 (LWP 4627) exited]
Program received signal SIGABRT, Aborted.
0x00007f49f23365f8 in raise () from /usr/lib/libc.so.6
Thread 6 (Thread 0x7f49d921d700 (LWP 4626)):
#0 0x00007f49f23e318d in poll () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007f49efeb99f2 in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#2 0x00007f49efebb56f in xcb_wait_for_event () from /usr/lib/libxcb.so.1
No symbol table info available.
#3 0x00007f49d9abfca9 in ?? () from /usr/lib/libQt5XcbQpa.so.5
No symbol table info available.
#4 0x00007f49f018ba9e in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007f49f26ae4a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#6 0x00007f49f23ec12d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 4 (Thread 0x7f49d186e700 (LWP 4628)):
#0 0x00007f49f23e4e23 in select () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007f49f03be91f in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#2 0x00007f49f03c03f7 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timespec*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#3 0x00007f49f03c08fe in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#4 0x00007f49f036a26a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007f49f0186af4 in QThread::exec() () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#6 0x00007f49ea64a335 in ?? () from /usr/lib/libQt5Qml.so.5
No symbol table info available.
#7 0x00007f49f018ba9e in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#8 0x00007f49f26ae4a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#9 0x00007f49f23ec12d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 2 (Thread 0x7f49cac23700 (LWP 4630)):
#0 0x00007f49f26b407f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
No symbol table info available.
#1 0x00007f49ef0e9564 in ?? () from /usr/lib/libQt5Script.so.5
No symbol table info available.
#2 0x00007f49ef0e95a9 in ?? () from /usr/lib/libQt5Script.so.5
No symbol table info available.
#3 0x00007f49f26ae4a4 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#4 0x00007f49f23ec12d in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7f49f2bce840 (LWP 4625)):
#0 0x00007f49f23365f8 in raise () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007f49f2337a7a in abort () from /usr/lib/libc.so.6
No symbol table info available.
#2 0x00007f49f1f560fe in KWin::UserActionsMenu::~UserActionsMenu (this=0x25d2d70, __in_chrg=<optimized out>) at /home/medhefgo/kwin-git/src/kwin/useractions.cpp:101
No locals.
#3 0x00007f49f1f56109 in KWin::UserActionsMenu::~UserActionsMenu (this=0x25d2d70, __in_chrg=<optimized out>) at /home/medhefgo/kwin-git/src/kwin/useractions.cpp:102
No locals.
#4 0x00007f49f039bed0 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007f49f10a600c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
No symbol table info available.
#6 0x00007f49f10ab4e6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
No symbol table info available.
#7 0x00007f49f036c89b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#8 0x00007f49f036ec96 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#9 0x00007f49f03c07c2 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#10 0x00007f49d9b2635d in ?? () from /usr/lib/libQt5XcbQpa.so.5
No symbol table info available.
#11 0x00007f49f036a26a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#12 0x00007f49f037220c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#13 0x00007f49f28c955f in kdemain (argc=2, argv=0x7ffcadd612c8) at /home/medhefgo/kwin-git/src/kwin/main_x11.cpp:303
primaryScreen = 0
c = 0x0
number_of_screens = <optimized out>
a = {<KWin::Application> = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f49f17a71a0 <QApplication::staticMetaObject>,
stringdata = 0x7f49f20a2a20 <qt_meta_stringdata_KWin__Application>, data = 0x7f49f20a2920 <qt_meta_data_KWin__Application>,
static_metacall = 0x7f49f2057660 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, m_originalSessionKey = {static null = {<No data fields>}, d = 0x7f49f041fde0 <QArrayData::shared_null>}, m_eventFilter = {
d = 0x2533cc0}, m_configLock = false, m_operationMode = KWin::Application::OperationModeX11, m_x11Time = 12906334, m_rootWindow = 191,
m_connection = 0x24ed360, static crashes = 0}, static staticMetaObject = {d = {superdata = 0x7f49f22fb220 <KWin::Application::staticMetaObject>,
stringdata = 0x7f49f28ca2c0 <qt_meta_stringdata_KWin__ApplicationX11>, data = 0x7f49f28ca260 <qt_meta_data_KWin__ApplicationX11>,
static_metacall = 0x7f49f28c9bd0 <KWin::ApplicationX11::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, owner = {d = 0x25393e0}, m_replace = true}
replaceOption = {d = {d = 0x253c8c0}}
parser = {d = 0x2543080}
helper = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f49f07a9b80 <QObject::staticMetaObject>,
stringdata = 0x7f49f2098200 <qt_meta_stringdata_KWin__SessionSaveDoneHelper>, data = 0x7f49f20981a0 <qt_meta_data_KWin__SessionSaveDoneHelper>,
static_metacall = 0x7f49f20585a0 <KWin::SessionSaveDoneHelper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
extradata = 0x0}}, notifier = 0x2544160, conn = 0x2552cf0}
#14 0x00007f49f2323610 in __libc_start_main () from /usr/lib/libc.so.6
No symbol table info available.
#15 0x00000000004007e9 in _start ()
No symbol table info available.
Detaching from program: /usr/bin/kwin_x11, process 4625
*cough*
diff --git a/useractions.cpp b/useractions.cpp
index 9714a6e..058e1cd 100755
--- a/useractions.cpp
+++ b/useractions.cpp
@@ -314,7 +314,7 @@ void UserActionsMenu::init()
p->setArguments(args);
p->setProcessEnvironment(kwinApp()->processStartupEnvironment());
p->setProgram(QStringLiteral("kcmshell5"));
- connect(p, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), this, &QProcess::deleteLater);
+ connect(p, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), p, &QProcess::deleteLater);
connect(p, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), this,
[p] (QProcess::ProcessError e) {
if (e == QProcess::FailedToStart) {
The patch fixes it. Many thanks for reporting and testing this! wow, twice the same. That's impressive! Git commit a97b6e0fd6a5eff53e3fccff825998feb4026a34 by Thomas Lübking. Committed on 24/08/2015 at 19:58. Pushed by luebking into branch 'Plasma/5.4'. delete the quit process, not UserActinsMenu FIXED-IN: 5.4.1 REVIEW: 124895 M +1 -1 useractions.cpp http://commits.kde.org/kwin/a97b6e0fd6a5eff53e3fccff825998feb4026a34 |