noticed this in the last few days - doing kwin_x11 --replace & will correctly spawn 'new' kwin_x11 process, but the old ones aren't dead. KF5 & Plasma from master, Qt very recent 5.4 branch Reproducible: Always Steps to Reproduce: kwin_x11 --replace & Actual Results: ps aux | grep kwin hrvoje 11003 2.3 1.9 3034172 79880 ? Sl 10:52 0:08 kwin_x11 --replace hrvoje 11532 0.0 0.0 10484 1616 pts/3 S+ 10:58 0:00 grep --color=auto kwin hrvoje 27556 1.7 2.2 3053412 90380 ? Sl 03:13 8:07 kwin_x11 --replace Expected Results: ps aux | grep kwin hrvoje 11003 2.3 1.9 3034172 79880 ? Sl 10:52 0:08 kwin_x11 --replace hrvoje 11532 0.0 0.0 10484 1616 pts/3 S+ 10:58 0:00 grep --color=auto kwin gdb attach all bt: #0 0x00007f1ede6c575d in nanosleep () at /lib64/libc.so.6 #1 0x00007f1edc664cdd in qt_nanosleep(timespec) (amount=...) at tools/qelapsedtimer_unix.cpp:190 #2 0x00007f1edc5b1e15 in QThread::msleep(unsigned long) (msecs=msecs@entry=6400) at thread/qthread_unix.cpp:476 #3 0x00007f1edc6bd570 in QLockFile::tryLock(int) (this=<optimized out>, timeout=timeout@entry=-1) at io/qlockfile.cpp:230 #4 0x00007f1edc6bd66a in QLockFile::lock() (this=<optimized out>) at io/qlockfile.cpp:177 #5 0x00007f1ed5c4dc69 in KConfigIniBackend::lock() (this=0x12f3d50) at /usr/src/debug/kconfig-5.8.0git/src/core/kconfigini.cpp:634 #6 0x00007f1ed5c3b49e in KConfig::sync() (this=0x1386870) at /usr/src/debug/kconfig-5.8.0git/src/core/kconfig.cpp:104 #7 0x00007f1ed5c3b49e in KConfig::sync() (this=<optimized out>) at /usr/src/debug/kconfig-5.8.0git/src/core/kconfig.cpp:415 #8 0x00007f1ed5c3b805 in KConfig::~KConfig() (this=0x7fffc26b7d00, __in_chrg=<optimized out>) at /usr/src/debug/kconfig-5.8.0git/src/core/kconfig.cpp:267 #9 0x00007f1ede2bb332 in KWin::RuleBook::save() (this=this@entry=0x120c780) at /usr/src/debug/kwin-5.2.90git/rules.cpp:1034 #10 0x00007f1ede2bb3c7 in KWin::RuleBook::~RuleBook() (this=0x120c780, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.2.90git/rules.cpp:956 #11 0x00007f1ede2bb3f9 in KWin::RuleBook::~RuleBook() (this=0x120c780, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.2.90git/rules.cpp:958 #12 0x00007f1ede244b46 in KWin::Workspace::~Workspace() (this=0x11df3b0, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.2.90git/workspace.cpp:426 #13 0x00007f1ede245189 in KWin::Workspace::~Workspace() (this=0x11df3b0, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.2.90git/workspace.cpp:440 #14 0x00007f1ede9b04e9 in KWin::ApplicationX11::lostSelection() (this=0x7fffc26b8790) at /usr/src/debug/kwin-5.2.90git/main_x11.cpp:135 #15 0x00007f1edc7bca26 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x115c2e0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3717 #16 0x00007f1edc7bd067 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x115c2e0, m=m@entry=0x7f1eddfb1ba0 <KSelectionOwner::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3582 #17 0x00007f1eddda2470 in KSelectionOwner::lostOwnership() (this=this@entry=0x115c2e0) at /usr/src/debug/kwindowsystem-5.8.0git/build/src/moc_kselectionowner.cpp:144 #18 0x00007f1eddd87ddb in KSelectionOwner::filterEvent(void*) (this=0x115c2e0, ev_P=<optimized out>) at /usr/src/debug/kwindowsystem-5.8.0git/src/kselectionowner.cpp:378 #19 0x00007f1edc78a360 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=0x7f1ec00016e0, result=0x7fffc26b8038) at kernel/qabstracteventdispatcher.cpp:460 #20 0x00007f1ec7279d9d in () at /usr/lib64/qt5/plugins/platforms/libqxcb.so #21 0x00007f1ec727b0fb in () at /usr/lib64/qt5/plugins/platforms/libqxcb.so #22 0x00007f1edc7bd846 in QObject::event(QEvent*) (this=0x11004d0, e=<optimized out>) at kernel/qobject.cpp:1245 #23 0x00007f1edd44cb5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #24 0x00007f1edd451a26 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #25 0x00007f1edc78d195 in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7fffc26b8790, receiver=0x11004d0, event=event@entry= 0x7f1ec00015c0) at kernel/qcoreapplication.cpp:935 #26 0x00007f1edc78f02f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (event=0x7f1ec00015c0, receiver=<optimized out>) at kernel/qcoreapplication.h:228 #27 0x00007f1edc78f02f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x10e45d0) at kernel/qcoreapplication.cpp:1552 #28 0x00007f1edc7e2634 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x11479b0, flags=...) at kernel/qeventdispatcher_unix.cpp:579 #29 0x00007f1ec72cefbd in () at /usr/lib64/qt5/plugins/platforms/libqxcb.so #30 0x00007f1edc78b0eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffc26b86c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #31 0x00007f1edc792776 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1188 #32 0x00007f1ede9b0d01 in kdemain(int, char**) (argc=2, argv=0x7fffc26b88d8) at /usr/src/debug/kwin-5.2.90git/main_x11.cpp:297 #33 0x00007f1ede630b45 in __libc_start_main () at /lib64/libc.so.6 #34 0x000000000040085e in _start () at ../sysdeps/x86_64/start.S:122
given the backtrace: * either home full (unlikely) * regression in KConfig * regression in Qt kwin didn't change in the teardown behavior lately.
likely corrupt cache, see bug #341963 i don't think this can only be related to running out of disk space - maybe sc4 and kf5 concurrent invalidation?
$HOME is not full and i could still reproduce after downgrading to Qt 5.4.0, KF5 5.7 and Plasma 5.2.1... will try to clear the cache to see does it have an effect
With a clean user the issue is not reproducible, but with my standard users i can reproduce after clearing the cache. Will attach relevant settings if anyone has an idea what could it be
Created attachment 92109 [details] KWin supportInformation
hm; ls .config/kwinrulesrc* .config/kwinrulesrc .config/kwinrulesrc.lock .config/kwinrulesrc.yV1370
removing the stale rulesrc files 'resolved' the problem. how you want to mark it - up to you ;-)
I call for "Fixed" =) http://commits.kde.org/kconfig/5a28172868cdc51607e0e87172d4d4fb6f01b896
With some luck, Qt 5.4.2 will have something in this area https://codereview.qt-project.org/#/c/110346/