Bug 405978 - Crash when changing scaling
Summary: Crash when changing scaling
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-29 00:04 UTC by Aleix Pol
Modified: 2020-06-16 14:45 UTC (History)
2 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-03-29 00:04:59 UTC
SUMMARY
After disconnecting a display, kwin/kscreen chose the wrong scaling. I changed it to fix it and everything crashed.

OBSERVED RESULT

#0  0x00007f8220d018b8 in  () at /usr/lib/libwayland-server.so.0
#1  0x00007f8220d01aff in wl_resource_post_error () at /usr/lib/libwayland-server.so.0
#2  0x00007f8220d03279 in  () at /usr/lib/libwayland-server.so.0
#3  0x00007f8220d047f2 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#4  0x00007f82269705fe in KWayland::Server::Display::Private::dispatch() (this=0x555634153f30) at /home/apol/devel/frameworks/kwayland/src/server/display.cpp:146
#5  0x00007f82269763b8 in KWayland::Server::Display::Private::installSocketNotifier()::$_0::operator()() const (this=0x555634137d90) at /home/apol/devel/frameworks/kwayland/src/server/display.cpp:114
#6  0x00007f8226976366 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWayland::Server::Display::Private::installSocketNotifier()::$_0>::call(KWayland::Server::Display::Private::installSocketNotifier()::$_0&, void**)
    (f=..., arg=0x7fff47c6f1e0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146
--Type <RET> for more, q to quit, c to continue without paging--
#7  0x00007f8226976331 in QtPrivate::Functor<KWayland::Server::Display::Private::installSocketNotifier()::$_0, 0>::call<QtPrivate::List<>, void>(KWayland::Server::Display::Private::installSocketNotifier()::$_0&, void*, void**) (f=..., arg=0x7fff47c6f1e0)
    at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256
#8  0x00007f82269762dd in QtPrivate::QFunctorSlotObject<KWayland::Server::Display::Private::installSocketNotifier()::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x555634137d80, r=0x555634142dd0, a=0x7fff47c6f1e0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:439
#9  0x00007f8224207da8 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=<optimized out>, r=0x555634142dd0, this=0x555634137d80) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
#10 0x00007f8224207da8 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x55563413b050, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff47c6f1e0)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3774
#11 0x00007f8224208205 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55563413b050, m=m@entry=0x7f82246acc00 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff47c6f1e0)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3646
#12 0x00007f82242148da in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55563413b050, _t1=<optimized out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:140
#13 0x00007f8224214d91 in QSocketNotifier::event(QEvent*) (this=0x55563413b050, e=0x7fff47c6f4f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:266
#14 0x00007f82251d121d in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5556341024b0, receiver=receiver@entry=0x55563413b050, e=e@entry=0x7fff47c6f4f0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3736
#15 0x00007f82251d8f9b in QApplication::notify(QObject*, QEvent*) (this=0x7fff47c6fee0, receiver=0x55563413b050, e=0x7fff47c6f4f0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3093
#16 0x00007f82241d4ffb in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55563413b050, event=0x7fff47c6f4f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1060
#17 0x00007f82241d5256 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1450
#18 0x00007f8224234bf1 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=this@entry=0x555634115a20) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304
#19 0x00007f8224235112 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:509
#20 0x00007f821b4499e3 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63
#21 0x00007f82241d2ea7 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff47c6f680, flags=..., flags@entry=...) at /usr/include/c++/8.2.1/bits/atomic_base.h:707
#22 0x00007f82241d32ff in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff47c6f680, flags=flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:122
#23 0x00007f82241dd458 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:120
#24 0x00007f82247c589a in QGuiApplication::exec() () at /home/apol/devel/frameworks/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1779
#25 0x00007f82251d118b in QApplication::exec() () at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2893
#26 0x0000555633a08a38 in main(int, char**) (argc=4, argv=0x7fff47c700f8) at /home/apol/devel/frameworks/kwin/main_wayland.cpp:664

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: ArchLinux
(available in About System)
KDE Plasma Version:  master
KDE Frameworks Version: master
Qt Version: 5.12



ADDITIONAL INFORMATION
Comment 1 Vlad Zahorodnii 2019-03-29 07:48:00 UTC
It would be great to know what error is posted by libwayland-server at #1  0x00007f8220d01aff. Could you please install debug packages for libwayland-server?
Comment 2 Christoph Feck 2019-04-19 09:47:31 UTC
If you can provide the information requested in comment #1, please add it.
Comment 3 Aleix Pol 2019-04-20 00:10:47 UTC
Sorry, I don't have access to debug packages for wayland as I'm on archlinux.
Comment 4 Erin Yuki Schlarb 2020-06-16 14:29:55 UTC
Is this still an issue? I used to have lots of crashes when changing KWin settings on Wayland (not limited to just scaling), but as of KWin 5.18 these seem to be gone.
Comment 5 David Edmundson 2020-06-16 14:45:05 UTC
Works here too. Lets assume it's resolved until we hear otherwise