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

Crash in Qt 3 D in conjunction with deletion of QOpenGLContext

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • None
    • 5.0.0 Beta 1
    • Qt3D
    • None
    • Linux Kubuntu 64bit

    Description

      To reproduce:

      • Insert a call to view->hide() in qtdeclarative/src/qmltest/quicktest.cpp below the code for test execution. This will cause the deletion of the QOpenGLContext in void QQuickTrivialWindowManager::hide(QQuickWindow *)
      • Run qtlocation/tests/auto/declarative_ui, observe crash

      #0 0x00000000010d1a20 in ?? ()
      #1 0x00007ffff738a3fd in QObject::connect (sender=0x697280, signal=0x7fffdfcacb28 "2aboutToBeDestroyed()", receiver=0xe70750,
      method=0x7fffdfcacaf0 "1mournGLContextDeath()", type=Qt::DirectConnection) at kernel/qobject.cpp:2434
      #2 0x00007fffdfc6e98d in QGLTexture2D::toBeDeletedLater (context=0x697280, textureId=32) at textures/qgltexture2d.cpp:959
      #3 0x00007fffdfc6bce3 in QGLTexture2DPrivate::~QGLTexture2DPrivate (this=0x7bb510, __in_chrg=<optimized out>) at textures/qgltexture2d.cpp:124
      #4 0x00007fffdfc6fd65 in QScopedPointerDeleter<QGLTexture2DPrivate>::cleanup (pointer=0x7bb510)
      at /depot/fkleint/qt-5/qtbase/include/QtCore/../../src/corelib/tools/qscopedpointer.h:63
      #5 0x00007fffdfc6f1d1 in QScopedPointer<QGLTexture2DPrivate, QScopedPointerDeleter<QGLTexture2DPrivate> >::~QScopedPointer (this=0x6da8b0,
      __in_chrg=<optimized out>) at /depot/fkleint/qt-5/qtbase/include/QtCore/../../src/corelib/tools/qscopedpointer.h:99
      #6 0x00007fffdfc6bea9 in QGLTexture2D::~QGLTexture2D (this=0x6da8a0, __in_chrg=<optimized out>) at textures/qgltexture2d.cpp:147
      #7 0x00007fffdfc6bf08 in QGLTexture2D::~QGLTexture2D (this=0x6da8a0, __in_chrg=<optimized out>) at textures/qgltexture2d.cpp:149
      #8 0x00007fffdf42ad45 in QGeoTileCache::GLContextAvailable (this=0xff7140) at maps/qgeotilecache.cpp:289
      #9 0x00007fffdf417eb3 in QGeoTiledMapDataPrivate::paintGL (this=0x10dd6a0, painter=0x7fffffffce20) at maps/qgeotiledmapdata.cpp:373
      #10 0x00007fffdf417037 in QGeoTiledMapData::paintGL (this=0x10d1910, painter=0x7fffffffce20) at maps/qgeotiledmapdata.cpp:168
      #11 0x00007fffdf4152b2 in QGeoMap::paintGL (this=0x104fe30, painter=0x7fffffffce20) at maps/qgeomap.cpp:104
      #12 0x00007fffec226e53 in MapNode::updateFBO (this=0x6c79b0) at mapnode.cpp:170
      #13 0x00007fffec226c19 in MapNode::update (this=0x6c79b0) at mapnode.cpp:100
      #14 0x00007fffec21d92c in QDeclarativeGeoMap::updatePaintNode (this=0x6a6cb0, oldNode=0x0, data=0x650b58) at qdeclarativegeomap.cpp:434
      #15 0x00007ffff6bf94cb in QQuickWindowPrivate::updateDirtyNode (this=0x6509d0, item=0x6a6cb0) at items/qquickwindow.cpp:2327
      #16 0x00007ffff6bf842f in QQuickWindowPrivate::updateDirtyNodes (this=0x6509d0) at items/qquickwindow.cpp:2148
      #17 0x00007ffff6bf0c67 in QQuickWindowPrivate::syncSceneGraph (this=0x6509d0) at items/qquickwindow.cpp:320
      #18 0x00007ffff6d047fd in QQuickTrivialWindowManager::renderWindow (this=0x658a90, window=0x648130) at items/qquickwindowmanager.cpp:258
      #19 0x00007ffff6d04d96 in QQuickTrivialWindowManager::event (this=0x658a90, e=0x10e3440) at items/qquickwindowmanager.cpp:351
      #20 0x00007ffff734da98 in QCoreApplicationPrivate::notify_helper (this=0x60e450, receiver=0x658a90, event=0x10e3440) at kernel/qcoreapplication.cpp:865
      #21 0x00007ffff734d78c in QCoreApplication::notify (this=0x60e430, receiver=0x658a90, event=0x10e3440) at kernel/qcoreapplication.cpp:810
      #22 0x00007ffff5ea19d4 in QGuiApplication::notify (this=0x60e430, object=0x658a90, event=0x10e3440) at kernel/qguiapplication.cpp:1092
      #23 0x00007ffff734d698 in QCoreApplication::notifyInternal (this=0x60e430, receiver=0x658a90, event=0x10e3440) at kernel/qcoreapplication.cpp:748
      #24 0x00007ffff7350f0d in QCoreApplication::sendEvent (receiver=0x658a90, event=0x10e3440) at kernel/qcoreapplication.h:206
      #25 0x00007ffff734e756 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60e550) at kernel/qcoreapplication.cpp:1349
      #26 0x00007ffff73bb31e in QEventDispatcherUNIX::processEvents (this=0x610870, flags=...) at kernel/qeventdispatcher_unix.cpp:586
      #27 0x00007ffff039ae9f in QUnixEventDispatcherQPA::processEvents (this=0x610870, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:72
      #28 0x00007ffff734db8d in QCoreApplication::processEvents (flags=..., maxtime=5000) at kernel/qcoreapplication.cpp:946
      #29 0x00007ffff7bc2262 in qWaitForSignal (obj=0x648130, signal=0x7ffff7bcfcd8 "2frameSwapped()", timeout=5000) at quicktest.cpp:160
      #30 0x00007ffff7bc35ad in quick_test_main (argc=1, argv=0x7fffffffde18, name=0x400799 "declarative_ui",
      sourceDir=0x400760 "/depot/fkleint/qt-5/qtlocation/tests/auto/declarative_ui") at quicktest.cpp:321
      #31 0x000000000040065f in main (argc=1, argv=0x7fffffffde18) at main.cpp:43

      Attachments

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

        Activity

          People

            kleint Friedemann Kleint
            kleint Friedemann Kleint
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes