graesslin added a comment.
Could you please push this change, it fixes a crash in KWin when changing outputs (as discovered by PlasmaSurfaceTest::testOSDPlacement()): 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 REPOSITORY R127 KWayland BRANCH mart/xdgforeign REVISION DETAIL https://phabricator.kde.org/D7531 To: davidedmundson, #plasma, graesslin Cc: graesslin, anthonyfieroni, plasma-devel, #frameworks, leezu, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol, mart, hein, lukas