Comment 11 for bug 1297240

Revision history for this message
Albert Astals Cid (aacid) wrote :

A nice valgrind trace about it showing the problem is the processEvents call we have in the LVWPH code

==3365== Thread 1:
==3365== Invalid read of size 8
==3365== at 0x5BFB7E4: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x5BDB2D2: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x5BDB667: QSGThreadedRenderLoop::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x64A4EFC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64A4C2C: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64F11AC: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64F1660: timerSourceDispatch(_GSource*, int (*)(void*), void*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x8CF1E03: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x8CF2047: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x8CF20EB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x64F198B: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64A396A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64AA0E0: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x406837: startShell(int, char const**, void*) (main.cpp:137)
==3365== by 0x406FA5: main (main.cpp:193)
==3365== Address 0x130fb938 is 8 bytes inside a block of size 208 free'd
==3365== at 0x4C2BB5C: operator delete(void*) (vg_replace_malloc.c:502)
==3365== by 0x64CCC9B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64D3631: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x5C06E25: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x64CD277: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x5BEEAE2: QQuickItem::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x64A4EFC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64A4C2C: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64A6E06: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64F1CD2: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x8CF1E03: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x8CF2047: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x8CF20EB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
==3365== by 0x64F198B: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x20FC63C5: ListViewWithPageHeader::updatePolish() (listviewwithpageheader.cpp:1299)
==3365== by 0x5BFB7F7: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x5BDB2D2: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x5BDB667: QSGThreadedRenderLoop::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==3365== by 0x64A4EFC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)
==3365== by 0x64A4C2C: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.1)