https://bugs.kde.org/show_bug.cgi?id=422372

            Bug ID: 422372
           Summary: kwin_wayland asserts when overlapping screens
           Product: kwin
           Version: git master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: nicolas.fe...@gmx.de
  Target Milestone: ---

SUMMARY

I have two screens. One 3840x2160 with 2x scaling, one 1920x1080 with 1x
scaling

When I position them disjoint in the KScreen KCM and hit apply things are fine.

When I position them to overlap and apply kwin_wayland asserts (see backtrace).

When I set the scale of the 4K monitor to 1x and overlap them things are fine.

All KDE stuff built from master.
Qt built from 5.15 branch

#0  0x00007f7d31a93355 in raise () at /usr/lib/libc.so.6
#1  0x00007f7d31a7c853 in abort () at /usr/lib/libc.so.6
#2  0x00007f7d32150c51 in qt_message_fatal (message=<synthetic pointer>...,
context=...) at global/qlogging.cpp:1914
#3  QMessageLogger::fatal(char const*, ...) const
(this=this@entry=0x7ffc1a65aa98, msg=msg@entry=0x7f7d3244aee8 "ASSERT: \"%s\"
in file %s, line %d") at global/qlogging.cpp:893
#4  0x00007f7d3215004a in qt_assert(char const*, char const*, int)
(assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at
../../include/QtCore/../../src/corelib/global/qlogging.h:90
#5  0x00007f7d35777dd4 in KWin::SwipeGesture::setStartGeometry(QRect const&)
(this=0x5559e07944a0, geometry=...) at /home/nico/kde/src/kwin/gestures.cpp:54
#6  0x00007f7d3582c78e in KWin::Edge::setGeometry(QRect const&)
(this=0x5559e0794500, geometry=...) at
/home/nico/kde/src/kwin/screenedge.cpp:529
#7  0x00007f7d3582f40c in KWin::ScreenEdges::createEdge(KWin::ElectricBorder,
int, int, int, int, bool) (this=0x5559dfdd0ce0, border=KWin::ElectricTop, x=53,
y=740, width=-52, height=1, createAction=true)
    at /home/nico/kde/src/kwin/screenedge.cpp:1120
#8  0x00007f7d3582f33a in
KWin::ScreenEdges::createHorizontalEdge(KWin::ElectricBorder, QRect const&,
QRect const&) (this=0x5559dfdd0ce0, border=KWin::ElectricTop, screen=...,
fullArea=...) at /home/nico/kde/src/kwin/screenedge.cpp:1109
#9  0x00007f7d3582ec80 in KWin::ScreenEdges::recreateEdges()
(this=0x5559dfdd0ce0) at /home/nico/kde/src/kwin/screenedge.cpp:1026
#10 0x00007f7d358da89e in KWin::Workspace::desktopResized()
(this=0x5559df475920) at /home/nico/kde/src/kwin/workspace.cpp:1941
#11 0x00007f7d356a1882 in KWin::Workspace::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (_o=0x5559df475920,
_c=QMetaObject::InvokeMetaMethod, _id=66, _a=0x7ffc1a65b010) at
kwin_autogen/EWIEGA46WW/moc_workspace.cpp:427
#12 0x00007f7d323a0be0 in doActivate<false>(QObject*, int, void**)
(sender=0x5559df621610, signal_index=4, argv=0x7ffc1a65b010) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#13 0x00007f7d35690fcd in KWin::Screens::changed() (this=0x5559df621610) at
kwin_autogen/EWIEGA46WW/moc_screens.cpp:277
#14 0x00007f7d356d52bf in
KWin::AbstractWaylandOutput::applyChanges(KWaylandServer::OutputChangeSet
const*) (this=0x5559df61c5b0, changeSet=0x5559e075fa10) at
/home/nico/kde/src/kwin/abstract_wayland_output.cpp:205
#15 0x00007f7d357ebe56 in
KWin::Platform::requestOutputsChange(KWaylandServer::OutputConfigurationInterface*)
(this=0x5559df4d80a0, config=0x5559e06c5500) at
/home/nico/kde/src/kwin/platform.cpp:150
#16 0x00007f7d358ba6a9 in
operator()(KWaylandServer::OutputConfigurationInterface*) const
(__closure=0x5559df4e99e0, config=0x5559e06c5500) at
/home/nico/kde/src/kwin/wayland_server.cpp:463
#17 0x00007f7d358c0a1f in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<KWaylandServer::OutputConfigurationInterface*>, void,
KWin::WaylandServer::init(const QByteArray&,
KWin::WaylandServer::InitializationFlags)::<lambda(KWaylandServer::OutputConfigurationInterface*)>
>::call(struct {...} &, void **) (f=..., arg=0x7ffc1a65b380) at
/home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:146
#18 0x00007f7d358c0445 in QtPrivate::Functor<KWin::WaylandServer::init(const
QByteArray&,
KWin::WaylandServer::InitializationFlags)::<lambda(KWaylandServer::OutputConfigurationInterface*)>,
1>::call<QtPrivate::List<KWaylandServer::OutputConfigurationInterface*>,
void>(struct {...} &, void *, void **) (f=..., arg=0x7ffc1a65b380) at
/home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:256
#19 0x00007f7d358bf402 in
QtPrivate::QFunctorSlotObject<KWin::WaylandServer::init(const QByteArray&,
KWin::WaylandServer::InitializationFlags)::<lambda(KWaylandServer::OutputConfigurationInterface*)>,
1, QtPrivate::List<KWaylandServer::OutputConfigurationInterface*>,
void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
(which=1, this_=0x5559df4e99d0, r=0x5559df4bb520, a=0x7ffc1a65b380, ret=0x0) at
/home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:443
#20 0x00007f7d323a0ba6 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffc1a65b380, r=0x5559df4bb520, this=0x5559df4e99d0) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#21 doActivate<false>(QObject*, int, void**) (sender=0x5559df4e9860,
signal_index=4, argv=0x7ffc1a65b380) at kernel/qobject.cpp:3886
#22 0x00007f7d3376477e in
KWaylandServer::OutputManagementInterface::configurationChangeRequested(KWaylandServer::OutputConfigurationInterface*)
(this=0x5559df4e9860, _t1=0x5559e06c5500)
    at
src/server/KWaylandServer_autogen/EWIEGA46WW/moc_outputmanagement_interface.cpp:136
#23 0x00007f7d337afddf in
KWaylandServer::OutputConfigurationInterface::Private::emitConfigurationChangeRequested()
const (this=0x5559e041b530) at
/home/nico/kde/src/kwayland-server/src/server/outputconfiguration_interface.cpp:243
#24 0x00007f7d337afa91 in
KWaylandServer::OutputConfigurationInterface::Private::applyCallback(wl_client*,
wl_resource*) (client=0x5559e06b2ad0, resource=0x5559e0624980)
    at
/home/nico/kde/src/kwayland-server/src/server/outputconfiguration_interface.cpp:201
#25 0x00007f7d2e76aa8d in  () at /usr/lib/libffi.so.7
#26 0x00007f7d2e76a01b in  () at /usr/lib/libffi.so.7
#27 0x00007f7d31008f62 in  () at /usr/lib/libwayland-server.so.0
#28 0x00007f7d310052dc in  () at /usr/lib/libwayland-server.so.0
#29 0x00007f7d31006faa in wl_event_loop_dispatch () at
/usr/lib/libwayland-server.so.0
#30 0x00007f7d33787865 in KWaylandServer::Display::Private::dispatch()
(this=0x5559df4dacf0) at
/home/nico/kde/src/kwayland-server/src/server/display.cpp:132
#31 0x00007f7d33787495 in operator()() const (__closure=0x5559df4daf90) at
/home/nico/kde/src/kwayland-server/src/server/display.cpp:100
#32 0x00007f7d3378fe6a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void,
KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>
>::call(struct {...} &, void **) (f=..., arg=0x7ffc1a65bbc0)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:146
#33 0x00007f7d3378f74d in
QtPrivate::Functor<KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>,
0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=...,
arg=0x7ffc1a65bbc0)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:256
#34 0x00007f7d3378ddd4 in
QtPrivate::QFunctorSlotObject<KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>,
0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *,
void **, bool *)
    (which=1, this_=0x5559df4daf80, r=0x5559df4c9870, a=0x7ffc1a65bbc0,
ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:443
#35 0x00007f7d323a0ba6 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffc1a65bbc0, r=0x5559df4c9870, this=0x5559df4daf80) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#36 doActivate<false>(QObject*, int, void**) (sender=0x5559df4daf00,
signal_index=3, argv=argv@entry=0x7ffc1a65bbc0) at kernel/qobject.cpp:3886
#37 0x00007f7d32399f00 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x5559df4daf00, m=m@entry=0x7f7d32637a80
<QSocketNotifier::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc1a65bbc0)
at kernel/qobject.cpp:3946
#38 0x00007f7d323a3fdf in QSocketNotifier::activated(QSocketDescriptor,
QSocketNotifier::Type, QSocketNotifier::QPrivateSignal)
(this=this@entry=0x5559df4daf00, _t1=..., _t2=<optimized out>, _t3=...) at
.moc/moc_qsocketnotifier.cpp:178
#39 0x00007f7d323a47db in QSocketNotifier::event(QEvent*) (this=0x5559df4daf00,
e=0x7ffc1a65bcd0) at kernel/qsocketnotifier.cpp:302
#40 0x00007f7d32e2d0ef in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x5559df4daf00, e=0x7ffc1a65bcd0) at
kernel/qapplication.cpp:3671

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to