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

Crash when accessing a null pex->shaderManager

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.11.2
    • 5.11.1
    • GUI: Font handling
    • None
    • Ubuntu 17.10
    • f71048a5314c93732a8a77460b465709b632ff5e

    Description

      I regularly get crashes with the following stack trace. The crash is due to QOpenGLTextureGlyphCache::resizeTextureData trying to use pex->shaderManager (on the line pex->shaderManager->useBlitProgram();), where shaderManager is null. I cannot share the code, and I have no idea how to recreate this with a minimal example. However, I think there is enough information in the stack trace to show that something is wrong:

      From what I can tell, the shaderManager should only be not null between calls to QOpenGL2PaintEngineEx::begin and QOpenGL2PaintEngineEx::end, but there is no sign of those functions intentionally being called anywhere in this stack.
      I have experienced this problem with the precompiled Qt 5.11 release, and with the Qt 5.11.1 release compiled from source (this is on Linux).

      This trace is from the 5.11.1 release:

      1  QOpenGLEngineShaderManager::useBlitProgram  qopenglengineshadermanager.cpp 660  0x7ffff65418ad 
      2  QOpenGLTextureGlyphCache::resizeTextureData qopengltextureglyphcache.cpp   382  0x7ffff6554b36 
      3  QTextureGlyphCache::resizeCache             qtextureglyphcache_p.h         133  0x7ffff64afe71 
      4  QTextureGlyphCache::fillInPendingGlyphs     qtextureglyphcache.cpp         246  0x7ffff64afe71 
      5  QSGTextMaskMaterial::populate               qsgdefaultglyphnode_p.cpp      476  0x7ffff75bdea0 
      6  QSGDefaultGlyphNode::update                 qsgdefaultglyphnode.cpp        101  0x7ffff75b8951 
      7  QQuickTextNode::addGlyphs                   qquicktextnode.cpp             117  0x7ffff768f7d6 
      8  QQuickTextNodeEngine::addToSceneGraph       qquicktextnodeengine.cpp       784  0x7ffff7696105 
      9  QQuickTextNode::addTextLayout               qquicktextnode.cpp             271  0x7ffff769084d 
      10 QQuickText::updatePaintNode                 qquicktext.cpp                 2405 0x7ffff768f196 
      11 QQuickWindowPrivate::updateDirtyNode        qquickwindow.cpp               3439 0x7ffff763cc45 
      12 QQuickWindowPrivate::updateDirtyNodes       qquickwindow.cpp               3184 0x7ffff763d377 
      13 QQuickWindowPrivate::syncSceneGraph         qquickwindow.cpp               431  0x7ffff763d4fc 
      14 QQuickRenderControl::sync                   qquickrendercontrol.cpp        286  0x7ffff7709ff1 
      15 QQuickWidgetPrivate::render                 qquickwidget.cpp               285  0x7ffff7ebec4d 
      16 QQuickWidgetPrivate::renderSceneGraph       qquickwidget.cpp               339  0x7ffff7ebed86 
      17 QQuickWidget::timerEvent                    qquickwidget.cpp               1128 0x7ffff7ebf60f 
      18 QObject::event                              qobject.cpp                    1232 0x7ffff5e408d6 
      19 QWidget::event                              qwidget.cpp                    9347 0x7ffff68b569a 
      20 QQuickWidget::event                         qquickwidget.cpp               1525 0x7ffff7ec3527 
      

      Attachments

        For Gerrit Dashboard: QTBUG-70096
        # Subject Branch Project Status CR V

        Activity

          People

            esabraha Eskil Abrahamsen Blomfeldt
            yokljo Joshua Worth
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes