Details
-
Bug
-
Resolution: Incomplete
-
P2: Important
-
None
-
5.7
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