D7531: Update SurfaceInterface outputs when an output global gets destroyed

Martin Flöser noreply at phabricator.kde.org
Sat Aug 26 07:43:10 UTC 2017


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 at 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 at entry=0x0, event_type=event_type at 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 at entry=0x7fffffffd100, flags=..., flags at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170826/01434288/attachment.html>


More information about the Plasma-devel mailing list