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

Crash when closing a window and showing it again with QtQuick 2D renderer

    XMLWordPrintable

    Details

    • Commits:
      040d9da184f69ce548951e674353083967c137a2

      Description

      Run window example from qtdeclarative/examples/quick/window/ :
      QMLSCENE_DEVICE=softwarecontext ./window

      Press "Show" button, then close the new window, then press "Show" again. Segfault.

      Stacktrace:

      (gdb) thread
      [Current thread is 8 (Thread 0x7fffda639700 (LWP 5769))]
      (gdb) bt
      #0  0x00007fffed007223 in QFontEngineFT::loadGlyphSet (this=0x7fffd0003fe0, matrix=...) at ../gui/text/qfontengine_ft.cpp:1338
      #1  0x00007fffed00954c in QFontEngineFT::loadGlyphFor (this=0x7fffd0003fe0, g=54, subPixelPosition=..., format=QFontEngine::Format_A8, t=...,
          fetchBoundingBox=false) at ../gui/text/qfontengine_ft.cpp:1795
      #2  0x00007fffed009350 in QFontEngineFT::lockedAlphaMapForGlyph (this=0x7fffd0003fe0, glyphIndex=54, subPixelPosition=..., neededFormat=QFontEngine::Format_A8,
          t=..., offset=0x7fffda637510) at ../gui/text/qfontengine_ft.cpp:1763
      #3  0x00007ffff70d63ba in QRasterPaintEngine::drawCachedGlyphs (this=0x7fffd000bd70, numGlyphs=13, glyphs=0x7fffd0007798, positions=0x7fffda637f20, fontEngine=
          0x7fffd0003fe0) at painting/qpaintengine_raster.cpp:2762
      #4  0x00007ffff70d7364 in QRasterPaintEngine::drawStaticTextItem (this=0x7fffd000bd70, textItem=0x7fffda637bb0) at painting/qpaintengine_raster.cpp:2989
      #5  0x00007ffff70f336f in QPainterPrivate::drawGlyphs (this=0x7fffd00095d0, glyphArray=0x7fffd0007798, positions=0x7fffda637f20, glyphCount=13,
          fontEngine=0x7fffd0003fe0, overline=false, underline=false, strikeOut=false) at painting/qpainter.cpp:5619
      #6  0x00007ffff70f2f77 in QPainter::drawGlyphRun (this=0x7fffda638800, position=..., glyphRun=...) at painting/qpainter.cpp:5575
      #7  0x00007fffe3be05c0 in GlyphNode::paint (this=0x7fffd0007020, painter=0x7fffda638800) at glyphnode.cpp:100
      #8  0x00007fffe3be0f45 in RenderingVisitor::visit (this=0x7fffda638870, node=0x7fffd0007020) at renderingvisitor.cpp:157
      #9  0x00007fffe3be080c in QSGGlyphNode::accept (this=0x7fffd0007020, visitor=0x7fffda638870)
          at /mnt/old4/home/user/sources/qtbase/include/QtQuick/5.7.0/QtQuick/private/../../../../../../qtdeclarative/src/quick/scenegraph/qsgadaptationlayer_p.h:254
      #10 0x00007ffff7801799 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd00067d0) at scenegraph/qsgadaptationlayer.cpp:492
      #11 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0003230) at scenegraph/qsgadaptationlayer.cpp:478
      #12 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd00030d0) at scenegraph/qsgadaptationlayer.cpp:478
      #13 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0002c50) at scenegraph/qsgadaptationlayer.cpp:478
      #14 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0002bf0) at scenegraph/qsgadaptationlayer.cpp:478
      #15 0x00007fffe3bd2547 in SoftwareContext::Renderer::render (this=0x7fffd0002ea0) at context.cpp:120
      #16 0x00007ffff77eacfe in QSGRenderer::renderScene (this=0x7fffd0002ea0, bindable=...) at scenegraph/coreapi/qsgrenderer.cpp:223
      #17 0x00007fffe3bd22bd in SoftwareContext::Renderer::renderScene (this=0x7fffd0002ea0, fboId=0) at context.cpp:99
      #18 0x00007ffff780610d in QSGRenderContext::renderNextFrame (this=0x74f2b0, renderer=0x7fffd0002ea0, fboId=0) at scenegraph/qsgcontext.cpp:561
      #19 0x00007fffe3bd2aa7 in SoftwareContext::RenderContext::renderNextFrame (this=0x74f2b0, renderer=0x7fffd0002ea0, fbo=0) at context.cpp:249
      #20 0x00007ffff7864371 in QQuickWindowPrivate::renderSceneGraph (this=0x74ed40, size=...) at items/qquickwindow.cpp:393
      #21 0x00007fffe3be441e in RenderThread::syncAndRender (this=0x7e9cd0) at threadedrenderloop.cpp:546
      #22 0x00007fffe3be4c82 in RenderThread::run (this=0x7e9cd0) at threadedrenderloop.cpp:624
      #23 0x00007ffff5942730 in QThreadPrivate::start (arg=0x7e9cd0) at thread/qthread_unix.cpp:343
      #24 0x00007ffff53c7f8e in start_thread (arg=0x7fffda639700) at pthread_create.c:308
      #25 0x00007ffff48db2ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
      #26 0x0000000000000000 in ?? ()
      

      It segfaults in the condition check: "if (!FT_IS_SCALABLE(freetype->face))" and freetype->face is 0 there.

        Attachments

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

          Activity

            People

            Assignee:
            kromain Romain Pokrzywka
            Reporter:
            avolkov Alexander Volkov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes