Summary: | Kwin crashes when using hot corner to switch virtual desktops | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Leszek Lesner <leszek.lesner> |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | christian |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.19.2 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Leszek Lesner
2020-05-31 00:23:00 UTC
So, the Q_ASSERT is triggered because the desktop grid has passed a garbage desktop id. The question is why the desktop grid effect passes garbage desktop ids... It will be really helpful if you find a reliable way to reproduce this crash. I can reproduce this on 5.19.2 by using the hot corner again when Present Windows is already open. Closing with ESC does not trigger the crash. Still experiencing this issue occasionally on KWin master. Here is the Backtrace: --- Backtrace: Application: KWin (kwin_x11), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #5 0x00007fd190c814ad in KWin::EffectWindow::isOnAllDesktops() const (this=0x0) at /home/leszek/kde/src/kwin/src/libkwineffects/kwineffects.cpp:815 #6 0x0000562403cea32f in KWin::DesktopGridEffect::desktopList(KWin::EffectWindow const*) const (this=0x562405d909c0, w=0x0) at /home/leszek/kde/src/kwin/src/effects/desktopgrid/desktopgrid.cpp:1449 #7 0x0000562403ce2c84 in KWin::DesktopGridEffect::slotWindowClosed(KWin::EffectWindow*) (this=0x562405d909c0, w=0x7fd184020ea0) at /home/leszek/kde/src/kwin/src/effects/desktopgrid/desktopgrid.cpp:448 #8 0x0000562403cf7914 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::EffectWindow*>, void, void (KWin::DesktopGridEffect::*)(KWin::EffectWindow*)>::call(void (KWin::DesktopGridEffect::*)(KWin::EffectWindow*), KWin::DesktopGridEffect*, void**) (f=(void (KWin::DesktopGridEffect::*)(class KWin::DesktopGridEffect * const, class KWin::EffectWindow *)) 0x562403ce2b9c <KWin::DesktopGridEffect::slotWindowClosed(KWin::EffectWindow*)>, o=0x562405d909c0, arg=0x7ffdaa5360a0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:152 #9 0x0000562403cf6622 in QtPrivate::FunctionPointer<void (KWin::DesktopGridEffect::*)(KWin::EffectWindow*)>::call<QtPrivate::List<KWin::EffectWindow*>, void>(void (KWin::DesktopGridEffect::*)(KWin::EffectWindow*), KWin::DesktopGridEffect*, void**) (f=(void (KWin::DesktopGridEffect::*)(class KWin::DesktopGridEffect * const, class KWin::EffectWindow *)) 0x562403ce2b9c <KWin::DesktopGridEffect::slotWindowClosed(KWin::EffectWindow*)>, o=0x562405d909c0, arg=0x7ffdaa5360a0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:185 #10 0x0000562403cf468b in QtPrivate::QSlotObject<void (KWin::DesktopGridEffect::*)(KWin::EffectWindow*), QtPrivate::List<KWin::EffectWindow*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x562405db8f30, r=0x562405d909c0, a=0x7ffdaa5360a0, ret=0x0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:418 #11 0x00007fd18f5de853 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdaa5360a0, r=0x562405d909c0, this=0x562405db8f30) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false>(QObject*, int, void**) (sender=0x5624053f0b60, signal_index=12, argv=0x7ffdaa5360a0) at /home/leszek/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #13 0x00007fd190c666cb in KWin::EffectsHandler::windowClosed(KWin::EffectWindow*) (this=0x5624053f0b60, _t1=0x7fd184020ea0) at /home/leszek/kde/build/kwin/src/libkwineffects/kwineffects_autogen/EWIEGA46WW/moc_kwineffects.cpp:1631 #14 0x00007fd19138642f in KWin::EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel*, KWin::Deleted*) (this=0x5624053f0b60, c=0x56240639f3b0, d=0x5624063557e0) at /home/leszek/kde/src/kwin/src/effects.cpp:560 #15 0x00007fd19139d7ce in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KWin::Toplevel*, KWin::Deleted*>, void, void (KWin::EffectsHandlerImpl::*)(KWin::Toplevel*, KWin::Deleted*)>::call(void (KWin::EffectsHandlerImpl::*)(KWin::Toplevel*, KWin::Deleted*), KWin::EffectsHandlerImpl*, void**) (f=(void (KWin::EffectsHandlerImpl::*)(class KWin::EffectsHandlerImpl * const, class KWin::Toplevel *, class KWin::Deleted *)) 0x7fd1913863e0 <KWin::EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel*, KWin::Deleted*)>, o=0x5624053f0b60, arg=0x7ffdaa5362b0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:152 #16 0x00007fd19139c830 in QtPrivate::FunctionPointer<void (KWin::EffectsHandlerImpl::*)(KWin::Toplevel*, KWin::Deleted*)>::call<QtPrivate::List<KWin::Toplevel*, KWin::Deleted*>, void>(void (KWin::EffectsHandlerImpl::*)(KWin::Toplevel*, KWin::Deleted*), KWin::EffectsHandlerImpl*, void**) (f=(void (KWin::EffectsHandlerImpl::*)(class KWin::EffectsHandlerImpl * const, class KWin::Toplevel *, class KWin::Deleted *)) 0x7fd1913863e0 <KWin::EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel*, KWin::Deleted*)>, o=0x5624053f0b60, arg=0x7ffdaa5362b0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:185 #17 0x00007fd19139ab51 in QtPrivate::QSlotObject<void (KWin::EffectsHandlerImpl::*)(KWin::Toplevel*, KWin::Deleted*), QtPrivate::List<KWin::Toplevel*, KWin::Deleted*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x562406039f30, r=0x5624053f0b60, a=0x7ffdaa5362b0, ret=0x0) at /home/leszek/kde/qt5/include/QtCore/qobjectdefs_impl.h:418 #18 0x00007fd18f5de853 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdaa5362b0, r=0x5624053f0b60, this=0x562406039f30) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #19 doActivate<false>(QObject*, int, void**) (sender=0x56240639f3b0, signal_index=10, argv=0x7ffdaa5362b0) at /home/leszek/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #20 0x00007fd1912e001f in KWin::Toplevel::windowClosed(KWin::Toplevel*, KWin::Deleted*) (this=0x56240639f3b0, _t1=0x56240639f3b0, _t2=0x5624063557e0) at /home/leszek/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_toplevel.cpp:809 #21 0x00007fd191526055 in KWin::X11Client::releaseWindow(bool) (this=0x56240639f3b0, on_shutdown=false) at /home/leszek/kde/src/kwin/src/x11client.cpp:269 #22 0x00007fd1913a1a78 in KWin::X11Client::unmapNotifyEvent(xcb_unmap_notify_event_t*) (this=0x56240639f3b0, e=0x7fd18402b710) at /home/leszek/kde/src/kwin/src/events.cpp:549 #23 0x00007fd1913a1314 in KWin::X11Client::windowEvent(xcb_generic_event_t*) (this=0x56240639f3b0, e=0x7fd18402b710) at /home/leszek/kde/src/kwin/src/events.cpp:393 #24 0x00007fd1913a056a in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0x5624052d4cf0, e=0x7fd18402b710) at /home/leszek/kde/src/kwin/src/events.cpp:166 #25 0x00007fd19140a192 in KWin::Application::dispatchEvent(xcb_generic_event_t*) (this=0x7ffdaa5369f0, event=0x7fd18402b710) at /home/leszek/kde/src/kwin/src/main.cpp:493 #26 0x00007fd19140a32e in KWin::XcbEventFilter::nativeEventFilter(QByteArray const&, void*, long*) (this=0x5624052c5ab0, eventType=..., message=0x7fd18402b710, result=0x7ffdaa536818) at /home/leszek/kde/src/kwin/src/main.cpp:577 #27 0x00007fd18f5a7b17 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=message@entry=0x7fd18402b710, result=result@entry=0x7ffdaa536818) at /home/leszek/kde/src/Qt5/qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:495 #28 0x00007fd1890640c1 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x562404f3d860, event=event@entry=0x7fd18402b710) at /home/leszek/kde/src/Qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:536 #29 0x00007fd189065546 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x562404f3d860, flags=...) at /home/leszek/kde/src/Qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1014 #30 0x00007fd18908672c in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x562405007a10, flags=...) at /home/leszek/kde/src/Qt5/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:61 #31 0x00007fd18f5a8ebb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdaa536930, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:69 #32 0x00007fd18f5b0aec in QCoreApplication::exec() () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121 #33 0x0000562403cd8701 in main(int, char**) (argc=3, argv=0x7ffdaa536ca8) at /home/leszek/kde/src/kwin/src/main_x11.cpp:482 [Inferior 1 (process 198635) detached] *** This bug has been marked as a duplicate of bug 445335 *** |