<table><tr><td style="">graesslin added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7531" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>Could you please push this change, it fixes a crash in KWin when changing outputs (as discovered by PlasmaSurfaceTest::testOSDPlacement()):</p>
<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">Thread 1 "testPlasmaSurfa" received signal SIGSEGV, Segmentation fault.
KWayland::Server::OutputInterface::clientResources (this=<optimized out>, client=0x790460) at /workspace/build/src/server/output_interface.cpp:514
514 /workspace/build/src/server/output_interface.cpp: No such file or directory.
(gdb) bt
#0 KWayland::Server::OutputInterface::clientResources (this=<optimized out>, client=0x790460) at /workspace/build/src/server/output_interface.cpp:514
#1 0x00007ffff6f59d87 in KWayland::Server::SurfaceInterface::setOutputs (this=<optimized out>, outputs=...)
at /workspace/build/src/server/surface_interface.cpp:792
#2 0x00007ffff7acbb4d in KWin::ShellClient::updateClientOutputs (this=0x78c710) at /home/martin/src/kde/workspace/kwin/shell_client.cpp:1540
#3 0x00007ffff5784f46 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffcc10, r=0x78c710, this=<optimized out>)
at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#4 QMetaObject::activate (sender=0x6c8e40, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>)
at kernel/qobject.cpp:3749
#5 0x00007ffff5785c59 in QObject::event (this=0x6c8e40, e=<optimized out>) at kernel/qobject.cpp:1246
#6 0x00007ffff62e23fc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x6c8e40, e=0x7e6ed0) at kernel/qapplication.cpp:3717
#7 0x00007ffff62e9e07 in QApplication::notify (this=0x7fffffffdd80, receiver=0x6c8e40, e=0x7e6ed0) at kernel/qapplication.cpp:3476
#8 0x00007ffff5758798 in QCoreApplication::notifyInternal2 (receiver=0x6c8e40, event=event@entry=0x7e6ed0) at kernel/qcoreapplication.cpp:1018
#9 0x00007ffff575af7b in QCoreApplication::sendEvent (event=0x7e6ed0, receiver=<optimized out>)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#10 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x641710)
at kernel/qcoreapplication.cpp:1678
#11 0x00007ffff57aa7e7 in QEventDispatcherUNIX::processEvents (this=0x657e20, flags=...) at kernel/qeventdispatcher_unix.cpp:466
#12 0x00007fffdfe02ced in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /home/martin/build/kde/workspace/kwin/bin/KWinQpaPlugin.so
#13 0x00007ffff57567ca in QEventLoop::exec (this=this@entry=0x7fffffffd100, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#14 0x0000000000412034 in QTestEventLoop::enterLoopMSecs (ms=5000, this=0x7fffffffd1c8) at /usr/include/x86_64-linux-gnu/qt5/QtTest/qtesteventloop.h:105
#15 QSignalSpy::wait (this=0x7fffffffd1a0, timeout=5000) at /usr/include/x86_64-linux-gnu/qt5/QtTest/qsignalspy.h:149
---Type <return> to continue, or q <return> to quit---
#16 0x000000000040e5db in PlasmaSurfaceTest::testOSDPlacement (this=<optimized out>)
at /home/martin/src/kde/workspace/kwin/autotests/integration/plasma_surface_test.cpp:233
#17 0x00007ffff57642d6 in QMetaMethod::invoke (this=<optimized out>, object=0x7fffffffdd50, connectionType=Qt::DirectConnection, returnValue=...,
val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:2222
#18 0x00007ffff7fa4f2c in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#19 0x00007ffff7fa5876 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#20 0x00007ffff7fa5ea2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#21 0x00007ffff7fa6389 in QTest::qExec(QObject*, int, char**) () from /usr/lib/x86_64-linux-gnu/libQt5Test.so.5
#22 0x0000000000409521 in main (argc=1, argv=0x7fffffffdf18) at /home/martin/src/kde/workspace/kwin/autotests/integration/plasma_surface_test.cpp:404</pre></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R127 KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>mart/xdgforeign</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7531" rel="noreferrer">https://phabricator.kde.org/D7531</a></div></div><br /><div><strong>To: </strong>davidedmundson, Plasma, graesslin<br /><strong>Cc: </strong>graesslin, anthonyfieroni, plasma-devel, Frameworks, leezu, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol, mart, hein, lukas<br /></div>