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

Issues with MDI subwindow when closing

    XMLWordPrintable

Details

    Description

      There seems to be many issues that lead to crashes or asserts when closing, some seem to have been fixed after 5.7.0, so I used 0826c7fbdfbc34280376ba165931f3a30c3d1e50 for these. These seem to be a lot easier to reproduce with X11 forwarding than locally (but can be achieved on both). To reproduce, run attached example (with X11 forwarding) and just close the window.

      ASSERT: "rGeometry && rGeometryRenderer && shader" in file /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderer.cpp, line 630
      
      Invalid read of size 8
        in QVector<Qt3DRender::Render::RenderCommand*>::QVector(QVector<Qt3DRender::Render::RenderCommand*> const&) in /home/jopoikel/work/qt/git/qtbase/src/corelib/tools/qvector.h:363
        1: QVector<Qt3DRender::Render::RenderCommand*>::QVector(QVector<Qt3DRender::Render::RenderCommand*> const&) in /home/jopoikel/work/qt/git/qtbase/src/corelib/tools/qvector.h:363
        2: Qt3DRender::Render::RenderView::commands() const in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderview_p.h:200
        3: Qt3DRender::Render::Renderer::prepareCommandsSubmission(QVector<Qt3DRender::Render::RenderView*> const&) in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderer.cpp:620
        4: Qt3DRender::Render::Renderer::doRender() in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderer.cpp:447
        5: Qt3DRender::Render::Renderer::render() in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderer.cpp:397
        6: Qt3DRender::Render::RenderThread::run() in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderthread.cpp:97
        7: QThreadPrivate::start(void*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/thread/qthread_unix.cpp:344
        8: start_thread in /build/glibc-GKVZIf/glibc-2.23/nptl/pthread_create.c:333
        9: clone in /build/glibc-GKVZIf/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      Address 0x2ae97a00 is 384 bytes inside a block of size 408 free'd  1: operator delete(void*) in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
        2: void qDeleteAll<Qt3DRender::Render::RenderView* const*>(Qt3DRender::Render::RenderView* const*, Qt3DRender::Render::RenderView* const*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/tools/qalgorithms.h:323
        3: void qDeleteAll<QVector<Qt3DRender::Render::RenderView*> >(QVector<Qt3DRender::Render::RenderView*> const&) in /home/jopoikel/work/qt/git/qtbase/src/corelib/tools/qalgorithms.h:331
        4: Qt3DRender::Render::Renderer::shutdown() in /home/jopoikel/work/qt/git/qt3d/src/render/backend/renderer.cpp:296
        5: Qt3DRender::QRenderAspect::onUnregistered() in /home/jopoikel/work/qt/git/qt3d/src/render/frontend/qrenderaspect.cpp:457
        6: Qt3DCore::QAspectManager::unregisterAspect(Qt3DCore::QAbstractAspect*) in /home/jopoikel/work/qt/git/qt3d/src/core/aspects/qaspectmanager.cpp:221
        7: Qt3DCore::QAspectManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in /home/jopoikel/work/qt/5.7/qt3d/src/core/.moc/moc_qaspectmanager_p.cpp:122
        8: QMetaCallEvent::placeMetaCall(QObject*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qobject.cpp:502
        9: QObject::event(QEvent*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qobject.cpp:1263
        10: QApplicationPrivate::notify_helper(QObject*, QEvent*) in /home/jopoikel/work/qt/git/qtbase/src/widgets/kernel/qapplication.cpp:3799
        11: QApplication::notify(QObject*, QEvent*) in /home/jopoikel/work/qt/git/qtbase/src/widgets/kernel/qapplication.cpp:3159
        12: QCoreApplication::notifyInternal2(QObject*, QEvent*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qcoreapplication.cpp:988
        13: QCoreApplication::sendEvent(QObject*, QEvent*) in /home/jopoikel/work/qt/5.7/qtbase/lib/libQt5Core.so.5.7.0
        14: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qcoreapplication.cpp:1649
        15: QCoreApplication::sendPostedEvents(QObject*, int) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qcoreapplication.cpp:1503
        16: postEventSourceDispatch(_GSource*, int (*)(void*), void*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:276
        17: g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.0
        18: /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.0
        19: g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.0
        20: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
        21: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qeventloop.cpp:134
        22: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) in /home/jopoikel/work/qt/git/qtbase/src/corelib/kernel/qeventloop.cpp:240
        23: Qt3DCore::QAspectManager::exec() in /home/jopoikel/work/qt/git/qt3d/src/core/aspects/qaspectmanager.cpp:239
        24: Qt3DCore::QAspectThread::run() in /home/jopoikel/work/qt/git/qt3d/src/core/aspects/qaspectthread.cpp:85
        25: QThreadPrivate::start(void*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/thread/qthread_unix.cpp:344
        26: start_thread in /build/glibc-GKVZIf/glibc-2.23/nptl/pthread_create.c:333
        27: clone in /build/glibc-GKVZIf/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      Block was alloc'd at  1: operator new(unsigned long) in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
        2: Qt3DRender::Render::RenderViewInitializerJob::run() in /home/jopoikel/work/qt/git/qt3d/src/render/jobs/renderviewinitializerjob.cpp:89
        3: Qt3DCore::AspectTaskRunnable::run() in /home/jopoikel/work/qt/git/qt3d/src/core/jobs/task.cpp:78
        4: QThreadPoolThread::run() in /home/jopoikel/work/qt/git/qtbase/src/corelib/thread/qthreadpool.cpp:99
        5: QThreadPrivate::start(void*) in /home/jopoikel/work/qt/git/qtbase/src/corelib/thread/qthread_unix.cpp:344
        6: start_thread in /build/glibc-GKVZIf/glibc-2.23/nptl/pthread_create.c:333
        7: clone in /build/glibc-GKVZIf/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      

      And:

      *** Error in `/home/jopoikel/work/by_name/build-qt3d_mdiwindow-5_7_debug-Debug/qt3d_mdiwindow': double free or corruption (fasttop): 0x00007fbfb4003350 ***
      

      With:

      1  __GI_raise                                                   raise.c          54   0x7ffff5acd418 
      2  __GI_abort                                                   abort.c          89   0x7ffff5acf01a 
      3  __libc_message                                               libc_fatal.c     175  0x7ffff5b0f72a 
      4  malloc_printerr                                              malloc.c         5007 0x7ffff5b17f4a 
      5  _int_free                                                    malloc.c         3868 0x7ffff5b17f4a 
      6  __GI___libc_free                                             malloc.c         2969 0x7ffff5b1babc 
      7  QArrayData::deallocate                                       qarraydata.cpp   148  0x7ffff64bcd39 
      8  QTypedArrayData<Qt3DRender::Render::LightSource>::deallocate qarraydata.h     228  0x7ffff7aced85 
      9  QVector<Qt3DRender::Render::LightSource>::freeData           qvector.h        524  0x7ffff7acc1cd 
      10 QVector<Qt3DRender::Render::LightSource>::~QVector           qvector.h        75   0x7ffff7ac99e2 
      11 Qt3DRender::Render::RenderView::~RenderView                  renderview.cpp   287  0x7ffff7ac4f8c 
      12 qDeleteAll<Qt3DRender::Render::RenderView * const *>         qalgorithms.h    323  0x7ffff7ab2eb6 
      13 qDeleteAll<QVector<Qt3DRender::Render::RenderView *>>        qalgorithms.h    331  0x7ffff7aaf0d1 
      14 Qt3DRender::Render::Renderer::doRender                       renderer.cpp     481  0x7ffff7aa895a 
      15 Qt3DRender::Render::Renderer::render                         renderer.cpp     397  0x7ffff7aa86e4 
      16 Qt3DRender::Render::RenderThread::run                        renderthread.cpp 97   0x7ffff7aa6ba2 
      17 QThreadPrivate::start                                        qthread_unix.cpp 344  0x7ffff64baf26 
      18 start_thread                                                 pthread_create.c 333  0x7ffff54946fa 
      19 clone                                                        clone.S          109  0x7ffff5b9eb5d 
      

      Attachments

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

        Activity

          People

            seanharmer Sean Harmer
            poikelin Joni Poikelin
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes