Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.7.0
-
None
-
Linux with X11.
-
ee7c3b576ced47d3b68da1913cdf6995144bddd2
Description
When I navigate very fast from one index to another far index of on a ListView (using currentIndex property) the qmlviewer crashes.
On the example I'm sending I have a feed which each feed entry has an image on the delagate component. When the list is clicked is set a random image on the list. The bug can be reproduced when you click many times and on a fast velocity. Even if all the images are loaded at least once, the bug still occurs.
Here is the backtrace taken by gdb:
(gdb) bt full #0 0x0805cd14 in QSize::width (this=0x28) at ../../include/QtCore/qsize.h:127 No locals. #1 0x006ff4a8 in readImage (url=..., dev=0xb4b9d788, image=0xb4b9d7b4, errorString=0xb4b9d7b0, impsize=0xb4b9d7a8, requestSize=...) at /home/dakerfp/workspace/qt-src/src/declarative/util/qdeclarativepixmapcache.cpp:285 imgio = {d = 0xb562d618} force_scale = false scaled = false #2 0x00700097 in QDeclarativePixmapReader::networkRequestDone (this= 0x82787d0, reply=0xb562d418) at /home/dakerfp/workspace/qt-src/src/declarative/util/qdeclarativepixmapcache.cpp:369 all = {static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x8099c60 "", array = ""}, static shared_empty = {ref = { _q_value = 25}, alloc = 0, size = 0, data = 0x3386454 "", array = ""}, d = 0xb5681768} buff = {<QIODevice> = {<QObject> = {_vptr.QObject = 0x3381608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x32e0de0 "QObject", data = 0x32e0d20, extradata = 0x337e540}}, d_ptr = { d = 0xb5628e28}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x32ee400 "Qt", data = 0x32ec1e0, extradata = 0x0}}}, static staticMetaObject = {d = warning: can't find linker symbol for virtual table for `(null)' value warning: found `typeinfo for QAbstractAnimation' instead {superdata = 0x8099b50, ---Type <return> to continue, or q <return> to quit--- stringdata = 0x32f43a0 "QIODevice", data = 0x32f4300, extradata = 0x0}}}, static staticMetaObject = {d = warning: can't find linker symbol for virtual table for `(null)' value warning: found `typeinfo for QFile' instead { superdata = 0x3382e68, stringdata = 0x32d3b50 "QBuffer", data = 0x32d3b00, extradata = 0x0}}} image = {<QPaintDevice> = {_vptr.QPaintDevice = 0x43619f0, painters = 0}, d = 0x0} error = QDeclarativePixmapReply::NoError errorString = warning: can't find linker symbol for virtual table for `QString' value {static null = {<No data fields>}, static shared_null = { ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x8099bfe, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = { ref = {_q_value = 4}, alloc = 0, size = 0, data = 0x3386532, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x8099bec, static codecForCStrings = 0x0} readSize = {wd = -1, ht = -1} job = 0x84764f8 #3 0x0070032d in QDeclarativePixmapReaderThreadObject::networkRequestDone ( this=0xb56127f0) at /home/dakerfp/workspace/qt-src/src/declarative/util/qdeclarativepixmapcache.cpp:407 reply = 0xb562d418 #4 0x0070303c in QDeclarativePixmapReaderThreadObject::qt_metacall (this= ---Type <return> to continue, or q <return> to quit--- 0xb56127f0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xb4b9d8cc) at .moc/debug-shared/qdeclarativepixmapcache.moc:147 No locals. #5 0x0320e0fc in QMetaObject::metacall (object=0xb56127f0, cl= QMetaObject::InvokeMetaMethod, idx=4, argv=0xb4b9d8cc) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qmetaobject.cpp:237 mo = 0x0 #6 0x03220cec in QMetaObject::activate (sender=0xb562d418, m=0x271d2c, local_signal_index=1, argv=0x0) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qobject.cpp:3272 receiverInSameThread = true previousSender = 0x0 receiver = 0xb56127f0 method = 4 currentSender = {sender = 0xb562d418, signal = 9, ref = 1} c = 0xb56289f8 last = 0xb56289f8 methodOffset = 8 signal_absolute_index = 9 empty_argv = {0x0} currentThreadData = 0x8278568 locker = {val = 136934928} connectionLists = 0xb562c048 ---Type <return> to continue, or q <return> to quit--- signalOffset = 6 signal_index = 7 #7 0x00220485 in QNetworkReply::finished (this=0xb562d418) at .moc/debug-shared/moc_qnetworkreply.cpp:149 No locals. #8 0x001d28f1 in QNetworkReplyImplPrivate::finished (this=0xb56282e8) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkreplyimpl.cpp:656 q = 0xb562d418 totalSize = {d = {data = {c = -23 '\351', i = 61929, u = 61929, b = 233, d = 3.0596991381302557e-319, f = 8.67810126e-41, real = 3.0596991381302557e-319, ll = 61929, ull = 61929, o = 0xf1e9, ptr = 0xf1e9, shared = 0xf1e9}, type = 4, is_shared = 0, is_null = 0}, static handler = 0x435a8c0} #9 0x001b6ae8 in QNetworkAccessBackend::finished (this=0xb5613f78) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkaccessbackend.cpp:309 No locals. #10 0x001bf4d9 in QNetworkAccessHttpBackend::finished (this=0xb5613f78) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkaccesshttpbackend.cpp:338 No locals. #11 0x001c20da in QNetworkAccessHttpBackend::replyFinished (this=0xb5613f78) ---Type <return> to continue, or q <return> to quit--- at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkaccesshttpbackend.cpp:773 statusCode = 200 #12 0x001c1d0e in QNetworkAccessHttpBackend::downstreamReadyWrite (this= 0xb5613f78) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkaccesshttpbackend.cpp:710 No locals. #13 0x001d1567 in QNetworkReplyImplPrivate::handleNotifications (this= 0xb56282e8) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkreplyimpl.cpp:367 notification = QNetworkReplyImplPrivate::NotifyDownstreamReadyWrite current = {<QList<QNetworkReplyImplPrivate::InternalNotifications>> = { {p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xb562e8e8}, d = 0xb562e8e8}}, <No data fields>} #14 0x001d33c2 in QNetworkReplyImpl::event (this=0xb562d418, e=0xb5627ef8) at /home/dakerfp/workspace/qt-src/src/network/access/qnetworkreplyimpl.cpp:866 No locals. #15 0x038b2a8a in QApplicationPrivate::notify_helper (this=0x809cd60, receiver= 0xb562d418, e=0xb5627ef8) ---Type <return> to continue, or q <return> to quit--- at /home/dakerfp/workspace/qt-src/src/gui/kernel/qapplication.cpp:4392 consumed = true #16 0x038b032e in QApplication::notify (this=0xbffff318, receiver=0xb562d418, e=0xb5627ef8) at /home/dakerfp/workspace/qt-src/src/gui/kernel/qapplication.cpp:3794 d = 0x809cd60 res = false #17 0x03206c05 in QCoreApplication::notifyInternal (this=0xbffff318, receiver= 0xb562d418, event=0xb5627ef8) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qcoreapplication.cpp:732 threadData = 0x8278568 returnValue = 3 result = false cbdata = {0xb562d418, 0xb5627ef8, 0xb4b9df13} d = 0xb56282e8 #18 0x0806b28f in QCoreApplication::sendEvent (receiver=0xb562d418, event= 0xb5627ef8) at ../../include/QtCore/qcoreapplication.h:215 No locals. #19 0x03207c18 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8278568) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qcoreapplication.cpp:1373 ---Type <return> to continue, or q <return> to quit--- pe = @0xb5638b60 e = 0xb5627ef8 r = 0xb562d418 locker = {val = 136807824} startOffset = 0 i = @0x8278588 #20 0x0320790f in QCoreApplication::sendPostedEvents (receiver=0x0, event_type= 0) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qcoreapplication.cpp:1266 data = 0x8278568 #21 0x0396d3e0 in QCoreApplication::sendPostedEvents () at ../../include/QtCore/qcoreapplication.h:220 No locals. #22 0x0323ae60 in postEventSourceDispatch (s=0xb5612850) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:277 source = 0xb5612850 #23 0x004fb525 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 No symbol table info available. #24 0x004ff268 in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #25 0x004ff449 in g_main_context_iteration () from /lib/libglib-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #26 0x0323b63e in QEventDispatcherGlib::processEvents (this=0xb5612898, flags= ...) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:415 d = 0xb56128e8 canWait = true savedFlags = {i = 0} result = true #27 0x0320486d in QEventLoop::processEvents (this=0xb4b9e268, flags=...) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qeventloop.cpp:149 d = 0xb561ecf8 #28 0x032049b2 in QEventLoop::exec (this=0xb4b9e268, flags=...) at /home/dakerfp/workspace/qt-src/src/corelib/kernel/qeventloop.cpp:201 d = 0xb561ecf8 app = 0xbffff318 eventLoop = 0xb4b9e248 #29 0x030f6d20 in QThread::exec (this=0x82787d0) at /home/dakerfp/workspace/qt-src/src/corelib/thread/qthread.cpp:490 d = 0x8278758 locker = {val = 136808360} eventLoop = {<QObject> = {_vptr.QObject = 0x3383668, static staticMetaObject = {d = {superdata = 0x0, stringdata = ---Type <return> to continue, or q <return> to quit--- 0x32e0de0 "QObject", data = 0x32e0d20, extradata = 0x337e540}}, d_ptr = { d = 0xb561ecf8}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x32ee400 "Qt", data = 0x32ec1e0, extradata = 0x0}}}, static staticMetaObject = {d = warning: can't find linker symbol for virtual table for `(null)' value warning: found `typeinfo for QAbstractAnimation' instead {superdata = 0x8099b50, stringdata = 0x32f57f0 "QEventLoop", data = 0x32f57a0, extradata = 0x0}}} returnCode = 4001536 #30 0x00701067 in QDeclarativePixmapReader::run (this=0x82787d0) at /home/dakerfp/workspace/qt-src/src/declarative/util/qdeclarativepixmapcache.cpp:554 No locals. #31 0x030f9451 in QThreadPrivate::start (arg=0x82787d0) at /home/dakerfp/workspace/qt-src/src/corelib/thread/qthread_unix.cpp:274 __clframe = warning: can't find linker symbol for virtual table for `__pthread_cleanup_class' value warning: found `QThreadPrivate::start(void*)' instead {__cancel_routine = 0x30f9498 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x82787d0, __do_it = 1, __cancel_type = 0} thr = 0x82787d0 data = 0x8278568 #32 0x0027a919 in start_thread () from /lib/libpthread.so.0 No symbol table info available. #33 0x02d54cbe in clone () from /lib/libc.so.6 No symbol table info available.