Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-71653

Compositor crash systematically when client exit/disconnect

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P1: Critical
    • None
    • 5.11.1
    • QPA: Wayland
    • None
    • Linux/Wayland

    Description

      Qt-5.11.1, Cortex A9, gcc, qreal=float

      I'm running pure-qml example, then the wiggly example.

      When i kill wiggly (from QtC), pure-qml crashes with this weird backtrace (100% reproducible):

      Thread 1 "pure-qml" received signal SIGSEGV, Segmentation fault.
      0xb6c1a404 in pixman_composite_over_8888_8888_asm_neon () at /tmp/qt5-base-5.11.1/qtbase/src/3rdparty/pixman/pixman-arm-neon-asm.S:632
      632     /tmp/qt5-base-5.11.1/qtbase/src/3rdparty/pixman/pixman-arm-neon-asm.S: No such file or directory.
      (gdb) bt
      Python Exception <type 'exceptions.ImportError'> No module named itertools: 
      #0  0xb6c1a404 in pixman_composite_over_8888_8888_asm_neon () at /tmp/qt5-base-5.11.1/qtbase/src/3rdparty/pixman/pixman-arm-neon-asm.S:632
      #1  0xb6e22a3c in QRasterPaintEngine::drawImage (this=0xb2d49c5c <QWaylandQuickItem::updateInputMethod(QFlags<Qt::InputMethodQuery>)+68>, r=..., img=..., sr=...)
          at /tmp/qt5-base-5.11.1/qtbase/src/gui/painting/qpaintengine_raster.cpp:2456
      #2  0xb6e25a98 in QRasterPaintEngine::drawPixmap (this=0x2d5018, r=..., pixmap=..., sr=...) at /tmp/qt5-base-5.11.1/qtbase/src/gui/painting/qpaintengine_raster.cpp:2099
      #3  0xb6e3b19c in QPainter::drawPixmap (this=this@entry=0xbefff318, r=..., pm=..., sr=...) at /tmp/qt5-base-5.11.1/qtbase/src/gui/painting/qpainter.cpp:5251
      #4  0xb42cb18c in QSGSoftwareRenderableNode::renderNode (this=0x2c98f0, painter=0xbefff318, forceOpaquePainting=<optimized out>)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp:311
      #5  0xb42c29fc in QSGAbstractSoftwareRenderer::renderNodes (this=this@entry=0x299ff8, painter=painter@entry=0xbefff318)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp:129
      #6  0xb42cf160 in QSGSoftwareRenderer::render (this=0x299ff8)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderer.cpp:156
      #7  0xb4279a44 in QSGRenderer::renderScene (this=0x299ff8, bindable=...) at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/coreapi/qsgrenderer.cpp:244
      #8  0xb42ceeec in QSGSoftwareRenderer::renderScene (this=<optimized out>)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderer.cpp:95
      #9  0xb430c7f4 in QQuickWindowPrivate::renderSceneGraph (this=0x7ab60, this@entry=0x2f0734, size=...)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/items/qquickwindow.cpp:481
      #10 0xb42d007c in QSGSoftwareRenderLoop::renderWindow (this=0x7af50, window=0x7aaf0, isNewExpose=<optimized out>)
          at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp:163
      #11 0xb4317090 in QQuickWindow::event (this=0x7aaf0, e=0xbefff60c) at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/items/qquickwindow.cpp:1615
      #12 0xb6390024 in doNotify (receiver=<optimized out>, event=<optimized out>) at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
      #13 0xb6390140 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x7aaf0, event=event@entry=0xbefff60c)
          at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qcoreapplication.cpp:1048
      #14 0xb6c77398 in QCoreApplication::sendEvent (event=0xbefff60c, receiver=<optimized out>)
          at /tmp/qt5-base-5.11.1/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
      #15 QWindowPrivate::deliverUpdateRequest (this=this@entry=0x7ab60) at /tmp/qt5-base-5.11.1/qtbase/src/gui/kernel/qwindow.cpp:2372
      #16 0xb6c77b50 in QWindow::event (this=this@entry=0x7aaf0, ev=ev@entry=0xbefff708) at /tmp/qt5-base-5.11.1/qtbase/src/gui/kernel/qwindow.cpp:2343
      #17 0xb4317054 in QQuickWindow::event (this=0x7aaf0, e=0xbefff708) at /tmp/qt5-declarative-5.11.1/qtdeclarative/src/quick/items/qquickwindow.cpp:1634
      #18 0xb6390024 in doNotify (receiver=<optimized out>, event=<optimized out>) at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qcoreapplication.cpp:1138
      #19 0xb6390140 in QCoreApplication::notifyInternal2 (receiver=0x7aaf0, event=event@entry=0xbefff708)
          at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qcoreapplication.cpp:1048
      #20 0xb63e41f8 in QCoreApplication::sendEvent (event=0xbefff708, receiver=<optimized out>)
          at /tmp/qt5-base-5.11.1/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
      #21 QTimerInfoList::activateTimers (this=this@entry=0x38724) at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:643
      #22 0xb63e1430 in QEventDispatcherUNIXPrivate::activateTimers (this=this@entry=0x386c8) at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:249
      #23 0xb63e239c in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...)
          at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:514
      #24 0xb5a8cbb4 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...)
          at /tmp/qt5-base-5.11.1/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:68
      #25 0xb638ee64 in QEventLoop::exec (this=this@entry=0xbefff7c4, flags=..., flags@entry=...) at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qeventloop.cpp:214
      #26 0xb6397824 in QCoreApplication::exec () at /tmp/qt5-base-5.11.1/qtbase/src/corelib/kernel/qcoreapplication.cpp:1336
      #27 0xb6c62548 in QGuiApplication::exec () at /tmp/qt5-base-5.11.1/qtbase/src/gui/kernel/qguiapplication.cpp:1761
      ---Type <return> to continue, or q <return> to quit---
      #28 0x00010b48 in main (argc=1, argv=<optimized out>) at ../../../../Projects/bolt-demos/wayland/pure-qml/main.cpp:67
       

      I can reproduce with Qt-5.11.2, on 64 bits Ubuntu-18.04 host running 32 bits build of Qt.

      I haven't tried the latest tip of the Qt 5.11 branch. But i could do that if that can help.

      I have always experienced this sort of crash since we started our Wayland experiments a couple of month ago. It started on Linux Desktop, and now we have it on arm too.

      We currently don't have OpenGL support, so Qt/Wayland fallback to SW rendering. That is certainly the case on ARM, but i would say that it is not the case on x86 Linux, So i'll try to provide an x86 backtrace too.
      We should get OpenGL "very soon", i'll try to run the same test again and post results as soon as OpenGL works.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            johanhelsing Johan Helsing
            christian_gagneraud_navico Christian Gagneraud
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes