On Wayland, Kwin crashes everytime I try to change the Vsync method setting in KCM. It does not crash immediately, but after 5 seconds or so. STEPS TO REPRODUCE 1. Start a Plasma Wayland session 2. Go to the Compositor KCM module and change Vsync setting 3. Get kicked back to SDDM OBSERVED RESULT Get kicked back to SDDM EXPECTED RESULT DON'T get kicked back to SDDM ! SOFTWARE VERSIONS (available in About System) KDE Plasma Version: 5.14.3 KDE Frameworks Version: 5.51.0 Qt Version: 5.11.2 ADDITIONAL INFORMATION Archlinux, Intel modesetting
Please provide backtrace of the crash.
How do I do that on Archlinux ?
First of all, you have to re-package kwin so it has debug symbols. See https://wiki.archlinux.org/index.php/Debug_-_Getting_Traces#CMAKE_.28KDE.29_applications * sudo pacman -S asp * asp export kwin * cd kwin Adjust PKGBUILD accordingly to the wiki page * makepkg -i Then follow https://community.kde.org/KWin/Debugging, e.g. * ssh from another machine to your computer * gdb --pid `pidof kwin_wayland` (gdb) continue * do something to crash kwin * dump the backtrace (gdb) bt when you submitted the backtrace, install kwin from the extra repo: * sudo pacman -S extra/kwin
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
Currently any change in compositor kcm is crashing Wayland session.
(In reply to Patrick Silva from comment #5) > Currently any change in compositor kcm is crashing Wayland session. Hmm, kwin_wayland doesn't crash for me. Could you please post the backtrace?
backtrace generated on neon dev unstable Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault. 0x000055b8ce7bcd90 in ?? () (gdb) thread apply all bt Thread 9 (Thread 1068.1106): #0 0x00007fc5efdf59f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fc5ed81efb8 <QTWTF::pageheap_memory+57592>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 #1 __pthread_cond_wait_common (abstime=0x0, mutex=0x7fc5ed81ef68 <QTWTF::pageheap_memory+57512>, cond=0x7fc5ed81ef90 <QTWTF::pageheap_memory+57552>) at pthread_cond_wait.c:502 #2 __pthread_cond_wait (cond=cond@entry=0x7fc5ed81ef90 <QTWTF::pageheap_memory+57552>, mutex=mutex@entry=0x7fc5ed81ef68 <QTWTF::pageheap_memory+57512>) at pthread_cond_wait.c:655 #3 0x00007fc5ed529954 in QTWTF::TCMalloc_PageHeap::scavengerThread ( this=0x7fc5ed810ec0 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #4 0x00007fc5ed529999 in QTWTF::TCMalloc_PageHeap::runScavengerThread ( context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #5 0x00007fc5efdef6db in start_thread (arg=0x7fc5ad575700) at pthread_create.c:463 #6 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 ---Type <return> to continue, or q <return> to quit--- Thread 8 (Thread 1068.1104): #0 0x00007fc5efdf59f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55b8ce1825d0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 #1 __pthread_cond_wait_common (abstime=0x0, mutex=0x55b8ce182580, cond=0x55b8ce1825a8) at pthread_cond_wait.c:502 #2 __pthread_cond_wait (cond=cond@entry=0x55b8ce1825a8, mutex=mutex@entry=0x55b8ce182580) at pthread_cond_wait.c:655 #3 0x00007fc5ee7d094b in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x55b8ce182580) at thread/qwaitcondition_unix.cpp:143 #4 QWaitCondition::wait (this=this@entry=0x55b8ce1823c0, mutex=mutex@entry=0x55b8ce1823b8, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215 #5 0x00007fc5aed8522b in FileInfoThread::run (this=0x55b8ce1823a8) at fileinfothread.cpp:227 #6 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8ce1823a8) at thread/qthread_unix.cpp:367 #7 0x00007fc5efdef6db in start_thread (arg=0x7fc5ae577700) at pthread_create.c:463 #8 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 ---Type <return> to continue, or q <return> to quit--- Thread 7 (Thread 1068.1103): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007fc5ee7c3594 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>) at thread/qfutex_p.h:92 #2 QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...) at thread/qfutex_p.h:107 #3 futexSemaphoreTryAcquire_loop<false> (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:221 #4 futexSemaphoreTryAcquire<false> (timeout=-1, n=n@entry=1, u=...) at thread/qsemaphore.cpp:264 #5 QSemaphore::acquire (this=this@entry=0x55b8ce2476a8, n=n@entry=1) at thread/qsemaphore.cpp:328 #6 0x00007fc5d67078fb in QtVirtualKeyboard::HunspellWorker::run (this=0x55b8ce247690) at hunspellworker.cpp:293 #7 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8ce247690) at thread/qthread_unix.cpp:367 #8 0x00007fc5efdef6db in start_thread (arg=0x7fc5aed78700) at pthread_create.c:463 #9 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 6 (Thread 1068.1102): #0 0x00007fc5ede92bf9 in __GI___poll (fds=0x7fc5b0004660, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc5e4e1f539 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fc5e4e1f64c in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fc5ee9f502f in QEventDispatcherGlib::processEvents (this=0x7fc5b0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7fc5b8a94d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #5 0x00007fc5ee7c4bba in QThread::exec (this=this@entry=0x55b8ce11e3f0) at thread/qthread.cpp:525 #6 0x00007fc5e8f1d4f5 in QQmlThreadPrivate::run (this=0x55b8ce11e3f0) at qml/ftw/qqmlthread.cpp:148 #7 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8ce11e3f0) at thread/qthread_unix.cpp:367 #8 0x00007fc5efdef6db in start_thread (arg=0x7fc5b8a95700) at pthread_create.c:463 #9 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 1068.1101): #0 0x00007fc5ede92bf9 in __GI___poll (fds=0x7fc5b4003ce0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc5e4e1f539 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fc5e4e1f64c in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fc5ee9f502f in QEventDispatcherGlib::processEvents (this=0x7fc5b4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7fc5c2738d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #5 0x00007fc5ee7c4bba in QThread::exec (this=this@entry=0x55b8cdfad900) at thread/qthread.cpp:525 #6 0x00007fc5e8f1d4f5 in QQmlThreadPrivate::run (this=0x55b8cdfad900) at qml/ftw/qqmlthread.cpp:148 ---Type <return> to continue, or q <return> to quit--- #7 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8cdfad900) at thread/qthread_unix.cpp:367 #8 0x00007fc5efdef6db in start_thread (arg=0x7fc5c2739700) at pthread_create.c:463 #9 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 1068.1071): #0 0x00007fc5ede92bf9 in __GI___poll (fds=0x7fc5c40046c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc5e4e1f539 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fc5e4e1f64c in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fc5ee9f502f in QEventDispatcherGlib::processEvents (this=0x7fc5c4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7fc5cfffed60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #5 0x00007fc5ee7c4bba in QThread::exec (this=<optimized out>) at thread/qthread.cpp:525 #6 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8cd65a440) at thread/qthread_unix.cpp:367 #7 0x00007fc5efdef6db in start_thread (arg=0x7fc5cffff700) at pthread_create.c:463 #8 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 1068.1070): #0 0x00007fc5ede92bf9 in __GI___poll (fds=0x7fc5c8003ce0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc5e4e1f539 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fc5e4e1f64c in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fc5ee9f502f in QEventDispatcherGlib::processEvents (this=0x7fc5c8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7fc5d4f4bd60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #5 0x00007fc5ee7c4bba in QThread::exec (this=<optimized out>) at thread/qthread.cpp:525 #6 0x00007fc5ee7cfadb in QThreadPrivate::start (arg=0x55b8cd65a130) at thread/qthread_unix.cpp:367 #7 0x00007fc5efdef6db in start_thread (arg=0x7fc5d4f4c700) at pthread_create.c:463 #8 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 1068.1069): #0 0x00007fc5ede92bf9 in __GI___poll (fds=0x7fc5d000c550, nfds=6, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc5e4e1f539 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fc5e4e1f64c in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fc5ee9f502f in QEventDispatcherGlib::processEvents (this=0x7fc5d0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7fc5d5da3d30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #5 0x00007fc5ee7c4bba in QThread::exec ( ---Type <return> to continue, or q <return> to quit--- this=this@entry=0x7fc5efde6d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:525 #6 0x00007fc5efb6ee45 in QDBusConnectionManager::run ( this=0x7fc5efde6d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #7 0x00007fc5ee7cfadb in QThreadPrivate::start ( arg=0x7fc5efde6d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:367 #8 0x00007fc5efdef6db in start_thread (arg=0x7fc5d5da4700) at pthread_create.c:463 #9 0x00007fc5ede9f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 1068.1068): #0 0x000055b8ce7bcd90 in ?? () #1 0x00007fc5f0985142 in QtSharedPointer::ExternalRefCountData::destroy (this=0x55b8ce356b80) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:157 #2 QSharedPointer<KWin::KeepAliveLock>::deref (dd=0x55b8ce356b80) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:465 #3 QSharedPointer<KWin::KeepAliveLock>::deref (this=0x55b8ce4213f8) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:460 #4 QSharedPointer<KWin::KeepAliveLock>::~QSharedPointer (this=0x55b8ce4213f8, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:315 #5 KWin::AniData::~AniData (this=0x55b8ce4213a0, __in_chrg=<optimized out>) at ./libkwineffects/anidata_p.h:74 #6 QList<KWin::AniData>::node_destruct (this=<optimized out>, to=0x55b8ce7bd380, from=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:494 #7 QList<KWin::AniData>::dealloc (data=0x55b8ce7bd370, this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:865 #8 0x00007fc5f098abc7 in QPair<QList<KWin::AniData>, QRect>::~QPair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h:49 #9 QMapNodeBase::callDestructorIfNecessary<QPair<QList<KWin::AniData>, QRect> > (t=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:103 #10 QMapNode<KWin::EffectWindow*, QPair<QList<KWin::AniData>, QRect> >::destroySubTree (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:128 #11 QMapData<KWin::EffectWindow*, QPair<QList<KWin::AniData>, QRect> >::destroy (this=0x55b8ce701230) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:248 #12 0x00007fc5f0987671 in QMap<KWin::EffectWindow*, QPair<QList<KWin::AniData>, QRect> >::~QMap (this=0x55b8ce65a190, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:339 #13 KWin::AnimationEffectPrivate::~AnimationEffectPrivate (this=0x55b8ce65a190, __in_chrg=<optimized out>) ---Type <return> to continue, or q <return> to quit--- at ./libkwineffects/kwinanimationeffect.cpp:40 #14 KWin::AnimationEffect::~AnimationEffect (this=0x55b8ce45f630, __in_chrg=<optimized out>) at ./libkwineffects/kwinanimationeffect.cpp:72 #15 0x00007fc5f0f87469 in KWin::ScriptedEffect::~ScriptedEffect (this=0x55b8ce45f630, __in_chrg=<optimized out>) at ./scripting/scriptedeffect.cpp:609 #16 0x00007fc5f0f47c72 in KWin::EffectsHandlerImpl::unloadAllEffects (this=this@entry=0x55b8ce428a10) at ./effects.cpp:288 #17 0x00007fc5f0f47d37 in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x55b8ce428a10, __in_chrg=<optimized out>) at ./effects.cpp:271 #18 0x00007fc5f0f47e29 in KWin::EffectsHandlerImpl::~EffectsHandlerImpl (this=0x55b8ce428a10, __in_chrg=<optimized out>) at ./effects.cpp:272 #19 0x00007fc5f0f2940f in KWin::Compositor::finish (this=0x55b8cd6ed550) at ./composite.cpp:406 #20 0x00007fc5f0f298ad in KWin::Compositor::slotReinitialize (this=0x55b8cd6ed550) at ./composite.cpp:502 #21 0x00007fc5f101cdd3 in KWin::Compositor::qt_static_metacall (_a=0x7ffd4c7f9940, _id=7, _c=QMetaObject::InvokeMetaMethod, _o=0x55b8cd6ed550) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_composite.cpp:314 #22 KWin::Compositor::qt_metacall (this=0x55b8cd6ed550, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7ffd4c7f9940) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_composite.cpp:315 #23 0x00007fc5efb79f58 in QDBusConnectionPrivate::deliverCall (this=<optimized out>, object=<optimized out>, msg=..., metaTypes=..., slotIdx=<optimized out>) at qdbusintegrator.cpp:991 #24 0x00007fc5ee9cabe2 in QObject::event (this=0x55b8cd6ed550, e=<optimized out>) at kernel/qobject.cpp:1251 #25 0x00007fc5eef80e1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from target:/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #26 0x00007fc5eef883ef in QApplication::notify(QObject*, QEvent*) () from target:/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #27 0x00007fc5ee99afe8 in QCoreApplication::notifyInternal2 (receiver=0x55b8cd6ed550, event=event@entry=0x7fc5d0031380) at kernel/qcoreapplication.cpp:1048 #28 0x00007fc5ee99db2d in QCoreApplication::sendEvent (event=0x7fc5d0031380, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55b8cd5ea420) at kernel/qcoreapplication.cpp:1745 #30 0x00007fc5ee9f2274 in QEventDispatcherUNIX::processEvents (this=0x55b8cd60f670, flags=...) at kernel/qeventdispatcher_unix.cpp:466 #31 0x00007fc5d8964fed in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from target:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so #32 0x00007fc5ee99930a in QEventLoop::exec (this=this@entry=0x7ffd4c7f9e60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #33 0x00007fc5ee9a24d0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1336 #34 0x000055b8cc7a1907 in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:816
@Patrick Silva Could you please also post output of
qdbus org.kde.KWin /KWin supportInformation
Version ======= KWin version: 5.14.80 Qt Version: 5.11.2 Qt compile version: 5.11.2 XCB compile version: 1.13 Operation Mode: Xwayland Build Options ============= KWIN_BUILD_DECORATIONS: yes KWIN_BUILD_TABBOX: yes KWIN_BUILD_ACTIVITIES: yes HAVE_DRM: yes HAVE_GBM: yes HAVE_X11_XCB: yes HAVE_EPOXY_GLX: yes HAVE_WAYLAND_EGL: yes X11 === Vendor: The X.Org Foundation Vendor Release: 11906000 Protocol Version/Revision: 11/0 SHAPE: yes; Version: 0x11 RANDR: yes; Version: 0x14 DAMAGE: yes; Version: 0x11 Composite: yes; Version: 0x4 RENDER: yes; Version: 0xb XFIXES: yes; Version: 0x50 SYNC: yes; Version: 0x31 GLX: yes; Version: 0x0 Decoration ========== Plugin: org.kde.breeze Theme: Blur: 0 onAllDesktopsAvailable: false alphaChannelSupported: true closeOnDoubleClickOnMenu: false decorationButtonsLeft: 0, 2, 9 decorationButtonsRight: 6, 3, 4, 5 borderSize: 3 gridUnit: 10 font: Noto Sans,10,-1,0,50,0,0,0,0,0,Regular smallSpacing: 2 largeSpacing: 10 Platform ========== Name: DRM Active: true Atomic Mode Setting: true Options ======= focusPolicy: 0 nextFocusPrefersMouse: false clickRaise: true autoRaise: false autoRaiseInterval: 0 delayFocusInterval: 0 shadeHover: false shadeHoverInterval: 250 separateScreenFocus: false placement: 4 focusPolicyIsReasonable: true borderSnapZone: 10 windowSnapZone: 10 centerSnapZone: 0 snapOnlyWhenOverlapping: false rollOverDesktops: true focusStealingPreventionLevel: 1 legacyFullscreenSupport: false operationTitlebarDblClick: 5000 operationMaxButtonLeftClick: 5000 operationMaxButtonMiddleClick: 5015 operationMaxButtonRightClick: 5014 commandActiveTitlebar1: 0 commandActiveTitlebar2: 30 commandActiveTitlebar3: 2 commandInactiveTitlebar1: 4 commandInactiveTitlebar2: 30 commandInactiveTitlebar3: 2 commandWindow1: 7 commandWindow2: 8 commandWindow3: 8 commandWindowWheel: 31 commandAll1: 10 commandAll2: 3 commandAll3: 14 keyCmdAllModKey: 16777251 showGeometryTip: false condensedTitle: false electricBorderMaximize: true electricBorderTiling: true electricBorderCornerRatio: 0.25 borderlessMaximizedWindows: false killPingTimeout: 5000 hideUtilityWindowsForInactive: true inactiveTabsSkipTaskbar: false autogroupSimilarWindows: false autogroupInForeground: true compositingMode: 1 useCompositing: true compositingInitialized: true hiddenPreviews: 1 glSmoothScale: 2 xrenderSmoothScale: false maxFpsInterval: 16666666 refreshRate: 0 vBlankTime: 6000000 glStrictBinding: false glStrictBindingFollowsDriver: true glCoreProfile: false glPreferBufferSwap: 101 glPlatformInterface: 2 windowsBlockCompositing: true Screen Edges ============ desktopSwitching: false desktopSwitchingMovingClients: false cursorPushBackDistance: 1x1 timeThreshold: 150 reActivateThreshold: 350 actionTopLeft: 0 actionTop: 0 actionTopRight: 0 actionRight: 0 actionBottomRight: 0 actionBottom: 0 actionBottomLeft: 0 actionLeft: 0 Screens ======= Multi-Head: no Active screen follows mouse: no Number of Screens: 1 Screen 0: --------- Name: LP140WHU-TLB LVDS-1-desconhecido Geometry: 0,0,1366x768 Scale: 1 Refresh Rate: 59.989 Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile OpenGL version string: 3.0 Mesa 18.0.5 OpenGL platform interface: EGL OpenGL shading language version string: 1.30 Driver: Intel GPU class: IvyBridge OpenGL version: 3.0 GLSL version: 1.30 Mesa version: 18.0.5 Linux kernel version: 4.15 Direct rendering: Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no OpenGL 2 Shaders are used Painting blocks for vertical retrace: no Loaded Effects: --------------- kwin4_effect_translucency zoom kwin4_effect_login kwin4_effect_dialogparent kwin4_effect_squash kwin4_effect_maximize kwin4_effect_frozenapp kwin4_effect_logout kwin4_effect_fadingpopups kwin4_effect_morphingpopups kwin4_effect_fade kwin4_effect_windowaperture slidingpopups slide screenshot desktopgrid colorpicker presentwindows highlightwindow blur contrast startupfeedback screenedge kscreen Currently Active Effects: ------------------------- blur contrast Effect Settings: ---------------- kwin4_effect_translucency: isActiveFullScreenEffect: false zoom: zoomFactor: 1.2 mousePointer: 0 mouseTracking: 0 enableFocusTracking: false followFocus: true focusDelay: 350 moveFactor: 20 targetZoom: 1 kwin4_effect_login: isActiveFullScreenEffect: false kwin4_effect_dialogparent: isActiveFullScreenEffect: false kwin4_effect_squash: isActiveFullScreenEffect: false kwin4_effect_maximize: isActiveFullScreenEffect: false kwin4_effect_frozenapp: isActiveFullScreenEffect: false kwin4_effect_logout: isActiveFullScreenEffect: false kwin4_effect_fadingpopups: isActiveFullScreenEffect: false kwin4_effect_morphingpopups: isActiveFullScreenEffect: false kwin4_effect_fade: isActiveFullScreenEffect: false kwin4_effect_windowaperture: isActiveFullScreenEffect: false slidingpopups: slideInDuration: 150 slideOutDuration: 250 slide: duration: 500 horizontalGap: 45 verticalGap: 20 slideDocks: false slideBackground: true screenshot: desktopgrid: zoomDuration: 300 border: 10 desktopNameAlignment: 0 layoutMode: 0 customLayoutRows: 2 usePresentWindows: true colorpicker: presentwindows: layoutMode: 0 showCaptions: true showIcons: true doNotCloseWindows: false ignoreMinimized: false accuracy: 20 fillGaps: true fadeDuration: 150 showPanel: false leftButtonWindow: 1 rightButtonWindow: 2 middleButtonWindow: 0 leftButtonDesktop: 2 middleButtonDesktop: 0 rightButtonDesktop: 0 highlightwindow: blur: contrast: startupfeedback: type: 1 screenedge: kscreen:
Probably either FAding Popups or Fade effect causes the crash. Could you please describe how to reproduce the crash? (I had no luck in reproducing the crash)
open compositor kcm change vsync setting click "Ok" button crash... crash is NOT reproducible if I click "Apply" instead "Ok" button
(In reply to Patrick Silva from comment #12) > open compositor kcm > change vsync setting > click "Ok" button > crash... Thanks, I'll try to reproduce the crash by following these steps.
Can confirm.
Compositor doesn't let AnimationEffect to cleanup gracefully, so KeepAliveLock and PreviousWindowPixmapLock can have dangling pointers. There are 2 potential ways to fix it: * emit deletedRemoved in Compositor::finish; * or, use QPointer in KeepAliveLock/PreviousWindowPixmapLock.
Option 2 sounds cleaner to me
(In reply to Martin Flöser from comment #16) > Option 2 sounds cleaner to me Okay then, I'll go with it. :-)
Other 2 options: * Do cleanup when aboutToFinishCompositing is emitted; * Move https://github.com/KDE/kwin/blame/master/composite.cpp#L406-L407 up (so effect windows outlive effects).
(In reply to Vlad Zagorodniy from comment #18) > * Move https://github.com/KDE/kwin/blame/master/composite.cpp#L406-L407 up > (so effect windows outlive effects). No, that's not an option because opengl shadow needs effects ptr. So, I'll stick with the aboutToFinishCompositing signal.
Git commit 295138145ca2cc0b8b9d637f6071298d356084d0 by Vlad Zagorodniy. Committed on 02/12/2018 at 17:59. Pushed by vladz into branch 'master'. Make sure that effect windows outlive effects Summary: Compositing is suspended/finished in a very hard way fashion, effect windows are destroyed without notifying effects about it. AnimationEffect tries gracefully release deleted windows, but because in some cases(like when suspending compositing) a deleted window can be already destroyed, a segmentation fault can happen. This change adjusts the order in which effect windows and effects are destroyed, so AnimationEffect (and other effects) cannot access dangling pointers. FIXED-IN: 5.15.0 Reviewers: #kwin, graesslin Reviewed By: #kwin, graesslin Subscribers: graesslin, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D17311 M +1 -0 autotests/integration/CMakeLists.txt A +150 -0 autotests/integration/dont_crash_reinitialize_compositor.cpp [License: GPL (v2)] M +7 -2 composite.cpp M +13 -0 effects.cpp M +9 -0 effects.h https://commits.kde.org/kwin/295138145ca2cc0b8b9d637f6071298d356084d0