Bug 411199 - KWin crashes when changing colour schemes
Summary: KWin crashes when changing colour schemes
Status: RESOLVED FIXED
Alias: None
Product: Breeze
Classification: Plasma
Component: QStyle (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords: wayland
Depends on:
Blocks:
 
Reported: 2019-08-23 10:11 UTC by Aleix Pol
Modified: 2021-02-16 21:32 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleix Pol 2019-08-23 10:11:24 UTC
SUMMARY

STEPS TO REPRODUCE
1. kcmshell5 colors
2. Choose a different colour and apply
3. Boom

OBSERVED RESULT

#0  0x00007f9eed99b755 in raise () at /usr/lib/libc.so.6
#1  0x00007f9eed98691a in abort () at /usr/lib/libc.so.6
#2  0x00007f9eee0661f4 in qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) (context=..., message=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1907
#3  0x00007f9eee066e65 in QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffdf4720c20, msg=msg@entry=0x7f9eee371210 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:888
#4  0x00007f9eee05f912 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.h:91
#5  0x00007f9eef9084c1 in KWayland::Client::Seat::createPointer(QObject*) (this=0x55d7393cd4a0, parent=0x55d7384a9bc0) at /home/apol/devel/frameworks/kwayland/src/client/seat.cpp:199
#6  0x00007f9ee780e062 in Breeze::WindowManager::waylandHasPointerChanged(bool) (this=0x55d7384a9bc0, hasPointer=true) at /home/apol/devel/frameworks/breeze/kstyle/breezewindowmanager.cpp:289
#7  0x00007f9ee7812a5b in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (Breeze::WindowManager::*)(bool)>::call(void (Breeze::WindowManager::*)(bool), Breeze::WindowManager*, void**) (f=
    (void (Breeze::WindowManager::*)(Breeze::WindowManager * const, bool)) 0x7f9ee780dfe0 <Breeze::WindowManager::waylandHasPointerChanged(bool)>, o=0x55d7384a9bc0, arg=0x7f9ed800f2e0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#8  0x00007f9ee78129b3 in QtPrivate::FunctionPointer<void (Breeze::WindowManager::*)(bool)>::call<QtPrivate::List<bool>, void>(void (Breeze::WindowManager::*)(bool), Breeze::WindowManager*, void**) (f=
    (void (Breeze::WindowManager::*)(Breeze::WindowManager * const, bool)) 0x7f9ee780dfe0 <Breeze::WindowManager::waylandHasPointerChanged(bool)>, o=0x55d7384a9bc0, arg=0x7f9ed800f2e0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#9  0x00007f9ee78128d6 in QtPrivate::QSlotObject<void (Breeze::WindowManager::*)(bool), QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55d7384f5e10, r=0x55d7384a9bc0, a=0x7f9ed800f2e0, ret=0x0)
    at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:414
#10 0x00007f9eee2a2939 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=<optimized out>, r=0x55d7384a9bc0, this=<optimized out>) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
#11 0x00007f9eee2a2939 in QMetaCallEvent::placeMetaCall(QObject*) (this=0x7f9ed800b0f0, object=0x55d7384a9bc0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:518
#12 0x00007f9eee2a91b9 in QObject::event(QEvent*) (this=0x55d7384a9bc0, e=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1260
#13 0x00007f9eeecaa07b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55d7384985e0, receiver=receiver@entry=0x55d7384a9bc0, e=e@entry=0x7f9ed800b0f0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3703
#14 0x00007f9eeecb39c8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffdf4721c60, receiver=0x55d7384a9bc0, e=0x7f9ed800b0f0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3059
#15 0x00007f9eee270ac3 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55d7384a9bc0, event=0x7f9ed800b0f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1095
#16 0x00007f9eee270d24 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x55d7384a9bc0, event=event@entry=0x7f9ed800b0f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1490
#17 0x00007f9eee2745ef in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55d7384874e0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1840
#18 0x00007f9eee2d71cb in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d7384a6b50, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:466
#19 0x00007f9ee838527f in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63
#20 0x00007f9eee26e6a7 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdf4721400, flags=..., flags@entry=...) at /usr/include/c++/9.1.0/bits/atomic_base.h:734
#21 0x00007f9eee26eaff in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdf4721400, flags=flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:122
#22 0x00007f9eee278f10 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:120
#23 0x00007f9eee65d834 in QGuiApplication::exec() () at /home/apol/devel/frameworks/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1788
#24 0x00007f9eeeca9fe9 in QApplication::exec() () at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2859
#25 0x000055d736468cda in main(int, char**) (argc=4, argv=0x7ffdf4721e78) at /home/apol/devel/frameworks/kwin/main_wayland.cpp:676


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Martin Flöser 2019-08-23 10:25:38 UTC
Reassigning to breeze as the assert I'd triggered from the kstyle.
Comment 2 Hugo Pereira Da Costa 2019-09-06 07:10:42 UTC
(In reply to Martin Flöser from comment #1)
> Reassigning to breeze as the assert I'd triggered from the kstyle.

Martin,
I am re-adding you in cc to this bug. You actually wrote the code from where the asserts arises. This is the wayland part of the WindowManager code that allows to grab windows from empty areas. I know nothing about that code and would not be able to fix. 
Can you please have a closer look ? 

Hugo
Comment 3 Justin Zobel 2020-11-20 06:50:22 UTC
I've just tested this on systemsettings 5.20.2 with Breeze 5.20.3 and I can't replicate the crash.
Comment 4 Nate Graham 2021-02-16 20:39:31 UTC
Me neither. Can anyone? Aleix?
Comment 5 Aleix Pol 2021-02-16 21:32:46 UTC
Not anymore!