Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.8.0
-
None
-
Windows 10
-
7eb11df19e0c0c52b877bc9ded357763bc014316
Description
The attached project crashes when trying to insert a pixmap that is too large into the pixmap cache.
Short backtrace:
1 QPMCache::insert qpixmapcache.cpp 335 0x7ff8c045b60a 2 QPixmapCache::insert qpixmapcache.cpp 563 0x7ff8c045aed8 3 QPixmap::load qpixmap.cpp 783 0x7ff8c0457762 4 QPixmap::QPixmap qpixmap.cpp 203 0x7ff8c04550fb 5 ImageProvider::requestPixmap main.cpp 38 0x7ff609462d81 6 createPixmapDataSync qquickpixmapcache.cpp 1235 0x7ff8c0d63c45 7 QQuickPixmap::load qquickpixmapcache.cpp 1494 0x7ff8c0d5e309 8 QQuickImageBase::load qquickimagebase.cpp 251 0x7ff8c0fd13bf 9 QQuickImageBase::componentComplete qquickimagebase.cpp 340 0x7ff8c0fd158c 10 QQmlObjectCreator::finalize qqmlobjectcreator.cpp 1224 0x55b797b6 11 QQmlComponentPrivate::complete qqmlcomponent.cpp 913 0x55aaa833 12 QQmlComponentPrivate::completeCreate qqmlcomponent.cpp 950 0x55aa9ec7 13 QQmlComponent::completeCreate qqmlcomponent.cpp 941 0x55aa83b2 14 QQmlComponent::create qqmlcomponent.cpp 772 0x55aa82e4 15 QQmlApplicationEnginePrivate::_q_finishLoad qqmlapplicationengine.cpp 137 0x55b6e442 16 QQmlApplicationEnginePrivate::startLoad qqmlapplicationengine.cpp 117 0x55b6de59 17 QQmlApplicationEngine::load qqmlapplicationengine.cpp 254 0x55b6d77d 18 main main.cpp 51 0x7ff6094626b8 19 WinMain qtmain_win.cpp 111 0x7ff60946591d 20 invoke_main exe_common.inl 99 0x7ff609463e2d ... <More>
Full backtrace:
. 0 Id: 19a8.1114 Suspend: 1 Teb: 000000f0`515cd000 Unfrozen Child-SP RetAddr Call Site 000000f0`516feac0 00007ff8`c045aed8 Qt5Guid!QPMCache::insert(class QString * key = 0x000000f0`516feba0, class QPixmap * pixmap = 0x000000f0`516fed40, int cost = 0n15360000)+0x7a [c:\dev\qt5-dev\qtbase\src\gui\image\qpixmapcache.cpp @ 335] 000000f0`516feb20 00007ff8`c0457762 Qt5Guid!QPixmapCache::insert(class QString * key = 0x000000f0`516feba0, class QPixmap * pixmap = 0x000000f0`516fed40)+0x78 [c:\dev\qt5-dev\qtbase\src\gui\image\qpixmapcache.cpp @ 563] 000000f0`516feb60 00007ff8`c04550fb Qt5Guid!QPixmap::load(class QString * fileName = 0x000000f0`516fed28, char * format = 0x00000000`00000000 "", class QFlags<enum Qt::ImageConversionFlag> flags = class QFlags<enum Qt::ImageConversionFlag>)+0x322 [c:\dev\qt5-dev\qtbase\src\gui\image\qpixmap.cpp @ 783] 000000f0`516fec80 00007ff6`09462d81 Qt5Guid!QPixmap::QPixmap(class QString * fileName = 0x000000f0`516fed28, char * format = 0x00000000`00000000 "", class QFlags<enum Qt::ImageConversionFlag> flags = class QFlags<enum Qt::ImageConversionFlag>)+0x7b [c:\dev\qt5-dev\qtbase\src\gui\image\qpixmap.cpp @ 203] 000000f0`516fecb0 00007ff8`c0d63c45 pixmapcache!ImageProvider::requestPixmap(class QString * id = 0x000000f0`516fef18, class QSize * size = 0x000000f0`516fedf0, class QSize * requestedSize = 0x000000f0`516ff280)+0x121 [c:\users\mitch\appdata\local\temp\pixmapcache\main.cpp @ 38] 000000f0`516fed90 00007ff8`c0d5e309 Qt5Quickd!createPixmapDataSync(class QQuickPixmap * declarativePixmap = 0x00000239`f0e66af0, class QQmlEngine * engine = 0x000000f0`516ff7b8, class QUrl * url = 0x000000f0`516ff1f8, class QSize * requestSize = 0x000000f0`516ff280, class QQuickImageProviderOptions * providerOptions = 0x00000239`f0e66b38, bool * ok = 0x000000f0`516ff0d0)+0x575 [c:\dev\qt5-dev\qtdeclarative\src\quick\util\qquickpixmapcache.cpp @ 1235] 000000f0`516ff0a0 00007ff8`c0fd13bf Qt5Quickd!QQuickPixmap::load(class QQmlEngine * engine = 0x000000f0`516ff7b8, class QUrl * url = 0x000000f0`516ff1f8, class QSize * requestSize = 0x000000f0`516ff280, class QFlags<enum QQuickPixmap::Option> options = class QFlags<enum QQuickPixmap::Option>, class QQuickImageProviderOptions * providerOptions = 0x00000239`f0e66b38)+0x329 [c:\dev\qt5-dev\qtdeclarative\src\quick\util\qquickpixmapcache.cpp @ 1494] 000000f0`516ff1b0 00007ff8`c0fd158c Qt5Quickd!QQuickImageBase::load(void)+0x55f [c:\dev\qt5-dev\qtdeclarative\src\quick\items\qquickimagebase.cpp @ 251] 000000f0`516ff310 00000000`55b797b6 Qt5Quickd!QQuickImageBase::componentComplete(void)+0x6c [c:\dev\qt5-dev\qtdeclarative\src\quick\items\qquickimagebase.cpp @ 340] 000000f0`516ff350 00000000`55aaa833 Qt5Qmld!QQmlObjectCreator::finalize(class QQmlInstantiationInterrupt * interrupt = 0x000000f0`516ff480)+0x366 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlobjectcreator.cpp @ 1224] 000000f0`516ff460 00000000`55aa9ec7 Qt5Qmld!QQmlComponentPrivate::complete(class QQmlEnginePrivate * enginePriv = 0x00000239`ee705e90, struct QQmlComponentPrivate::ConstructionState * state = 0x00000239`f0dc3f90)+0x43 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlcomponent.cpp @ 913] 000000f0`516ff4c0 00000000`55aa83b2 Qt5Qmld!QQmlComponentPrivate::completeCreate(void)+0x47 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlcomponent.cpp @ 950] 000000f0`516ff510 00000000`55aa82e4 Qt5Qmld!QQmlComponent::completeCreate(void)+0x22 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlcomponent.cpp @ 941] 000000f0`516ff550 00000000`55b6e442 Qt5Qmld!QQmlComponent::create(class QQmlContext * context = 0x00000239`ee78f4c0)+0x94 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlcomponent.cpp @ 772] 000000f0`516ff5b0 00000000`55b6de59 Qt5Qmld!QQmlApplicationEnginePrivate::_q_finishLoad(class QObject * o = 0x00000239`f0dd1710)+0x192 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlapplicationengine.cpp @ 137] 000000f0`516ff680 00000000`55b6d77d Qt5Qmld!QQmlApplicationEnginePrivate::startLoad(class QUrl * url = 0x000000f0`516ff7a8, class QByteArray * data = 0x000000f0`516ff728, bool dataFlag = false)+0xd9 [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlapplicationengine.cpp @ 117] 000000f0`516ff700 00007ff6`094626b8 Qt5Qmld!QQmlApplicationEngine::load(class QUrl * url = 0x000000f0`516ff7a8)+0x3d [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\qqmlapplicationengine.cpp @ 254] 000000f0`516ff740 00007ff6`0946591d pixmapcache!main(int argc = 0n1, char ** argv = 0x00000239`ee6d4ad0)+0x118 [c:\users\mitch\appdata\local\temp\pixmapcache\main.cpp @ 51] 000000f0`516ff800 00007ff6`09463e2d pixmapcache!WinMain(struct HINSTANCE__ * __formal = 0x00007ff6`09460000, struct HINSTANCE__ * __formal = 0x00000000`00000000, char * __formal = 0x00000239`ee6c5218 ""-qmljsdebugger=port:52609,block,services:DebugMessages,QmlDebugger,V8Debugger,QmlInspector"", int __formal = 0n10)+0xed [c:\dev\qt5-dev\qtbase\src\winmain\qtmain_win.cpp @ 111] 000000f0`516ff880 00007ff6`09463cf7 pixmapcache!invoke_main(void)+0x2d [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 99] 000000f0`516ff8c0 00007ff6`09463bbe pixmapcache!__scrt_common_main_seh(void)+0x127 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253] 000000f0`516ff920 00007ff6`09463e49 pixmapcache!__scrt_common_main(void)+0xe [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 296] *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\System32\KERNEL32.DLL - 000000f0`516ff950 00007ff8`f4c48364 pixmapcache!WinMainCRTStartup(void)+0x9 [f:\dd\vctools\crt\vcstartup\src\startup\exe_winmain.cpp @ 17] 000000f0`516ff980 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`516ff9b0 00000000`00000000 ntdll!RtlUserThreadStart+0x21 1 Id: 19a8.2a88 Suspend: 1 Teb: 000000f0`515cf000 Unfrozen Child-SP RetAddr Call Site 000000f0`517ff7f8 00007ff8`f71c352e ntdll!NtWaitForWorkViaWorkerFactory+0x14 000000f0`517ff800 00007ff8`f4c48364 ntdll!RtlReleaseSRWLockExclusive+0x1ade 000000f0`517ffc00 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`517ffc30 00000000`00000000 ntdll!RtlUserThreadStart+0x21 2 Id: 19a8.28c0 Suspend: 1 Teb: 000000f0`515d1000 Unfrozen Child-SP RetAddr Call Site 000000f0`518ff5b8 00007ff8`f71c352e ntdll!NtWaitForWorkViaWorkerFactory+0x14 000000f0`518ff5c0 00007ff8`f4c48364 ntdll!RtlReleaseSRWLockExclusive+0x1ade 000000f0`518ff9c0 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`518ff9f0 00000000`00000000 ntdll!RtlUserThreadStart+0x21 3 Id: 19a8.3124 Suspend: 1 Teb: 000000f0`515d3000 Unfrozen Child-SP RetAddr Call Site 000000f0`519ff3f8 00007ff8`f71c352e ntdll!NtWaitForWorkViaWorkerFactory+0x14 000000f0`519ff400 00007ff8`f4c48364 ntdll!RtlReleaseSRWLockExclusive+0x1ade 000000f0`519ff800 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`519ff830 00000000`00000000 ntdll!RtlUserThreadStart+0x21 4 Id: 19a8.1c10 Suspend: 1 Teb: 000000f0`515d5000 Unfrozen "QQmlThread" Child-SP RetAddr Call Site 000000f0`51afbf78 00007ff8`f398c2cf ntdll!ZwWaitForMultipleObjects+0x14 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\System32\USER32.dll - 000000f0`51afbf80 00007ff8`f63ee1fb KERNELBASE!WaitForMultipleObjectsEx+0xef 000000f0`51afc280 00000000`54f7f7d1 USER32!MsgWaitForMultipleObjectsEx+0x15b 000000f0`51afc360 00000000`54ebf798 Qt5Cored!QEventDispatcherWin32::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x7b1 [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventdispatcher_win.cpp @ 635] 000000f0`51aff710 00000000`54ebf9de Qt5Cored!QEventLoop::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x68 [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventloop.cpp @ 135] 000000f0`51aff750 00000000`54b059cf Qt5Cored!QEventLoop::exec(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x18e [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventloop.cpp @ 212] 000000f0`51aff800 00000000`55b8f4ca Qt5Cored!QThread::exec(void)+0xbf [c:\dev\qt5-dev\qtbase\src\corelib\thread\qthread.cpp @ 507] 000000f0`51aff870 00000000`54b12606 Qt5Qmld!QQmlThreadPrivate::run(void)+0x4a [c:\dev\qt5-dev\qtdeclarative\src\qml\qml\ftw\qqmlthread.cpp @ 148] 000000f0`51aff8a0 00007ff8`f4c48364 Qt5Cored!QThreadPrivate::start(void * arg = 0x00000239`ee706940)+0x196 [c:\dev\qt5-dev\qtbase\src\corelib\thread\qthread_win.cpp @ 380] 000000f0`51aff930 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`51aff960 00000000`00000000 ntdll!RtlUserThreadStart+0x21 5 Id: 19a8.97c Suspend: 1 Teb: 000000f0`515d7000 Unfrozen "QQmlDebugServerThread" Child-SP RetAddr Call Site 000000f0`51bfc508 00007ff8`f398c2cf ntdll!ZwWaitForMultipleObjects+0x14 000000f0`51bfc510 00007ff8`f63ee1fb KERNELBASE!WaitForMultipleObjectsEx+0xef 000000f0`51bfc810 00000000`54f7f7d1 USER32!MsgWaitForMultipleObjectsEx+0x15b 000000f0`51bfc8f0 00000000`54ebf798 Qt5Cored!QEventDispatcherWin32::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x7b1 [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventdispatcher_win.cpp @ 635] 000000f0`51bffca0 00000000`54ebf9de Qt5Cored!QEventLoop::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x68 [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventloop.cpp @ 135] 000000f0`51bffce0 00000000`54b059cf Qt5Cored!QEventLoop::exec(class QFlags<enum QEventLoop::ProcessEventsFlag> flags = class QFlags<enum QEventLoop::ProcessEventsFlag>)+0x18e [c:\dev\qt5-dev\qtbase\src\corelib\kernel\qeventloop.cpp @ 212] *** WARNING: Unable to verify checksum for C:\dev\qt5-dev-debug\qtbase\plugins\qmltooling\qmldbg_serverd.dll 000000f0`51bffd90 00007ff8`e6573682 Qt5Cored!QThread::exec(void)+0xbf [c:\dev\qt5-dev\qtbase\src\corelib\thread\qthread.cpp @ 507] 000000f0`51bffe00 00000000`54b12606 qmldbg_serverd!QQmlDebugServerThread::run(void)+0x2a2 [c:\dev\qt5-dev\qtdeclarative\src\plugins\qmltooling\qmldbg_server\qqmldebugserver.cpp @ 259] 000000f0`51bffec0 00007ff8`f4c48364 Qt5Cored!QThreadPrivate::start(void * arg = 0x00000239`ee7917a8)+0x196 [c:\dev\qt5-dev\qtbase\src\corelib\thread\qthread_win.cpp @ 380] 000000f0`51bfff50 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`51bfff80 00000000`00000000 ntdll!RtlUserThreadStart+0x21 6 Id: 19a8.2f2c Suspend: 1 Teb: 000000f0`515d9000 Unfrozen Child-SP RetAddr Call Site 000000f0`51cffa98 00007ff8`f2dffb19 ntdll!ZwRemoveIoCompletion+0x14 000000f0`51cffaa0 00007ff8`f4c48364 mswsock!Tcpip4_WSHStringToAddress+0x109 000000f0`51cffaf0 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`51cffb20 00000000`00000000 ntdll!RtlUserThreadStart+0x21 7 Id: 19a8.15d8 Suspend: 1 Teb: 000000f0`515db000 Unfrozen Child-SP RetAddr Call Site 000000f0`51dffa28 00007ff8`f71c352e ntdll!NtWaitForWorkViaWorkerFactory+0x14 000000f0`51dffa30 00007ff8`f4c48364 ntdll!RtlReleaseSRWLockExclusive+0x1ade 000000f0`51dffe30 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`51dffe60 00000000`00000000 ntdll!RtlUserThreadStart+0x21 8 Id: 19a8.2674 Suspend: 1 Teb: 000000f0`515dd000 Unfrozen Child-SP RetAddr Call Site 000000f0`51effb28 00007ff8`f71c352e ntdll!NtWaitForWorkViaWorkerFactory+0x14 000000f0`51effb30 00007ff8`f4c48364 ntdll!RtlReleaseSRWLockExclusive+0x1ade 000000f0`51efff30 00007ff8`f71f70d1 KERNEL32!BaseThreadInitThunk+0x14 000000f0`51efff60 00000000`00000000 ntdll!RtlUserThreadStart+0x21
Attachments
Issue Links
- is duplicated by
-
QTBUG-62064 Crash when trying to load 4K JPG-image to QPixmap
- Closed
-
QTBUG-59542 Qt Sensors - Explorer QML crashes when maximizing
- Closed
-
QTBUG-61309 QPixmap(someFileName) hangs in debug mode
- Closed
-
QTBUG-59800 QPixmap crashes on load.
- Closed
- relates to
-
QTBUG-58551 Crash in tst_QPixmapCache::remove()
- Closed
-
QTBUG-59065 Crash when loading large JPG
- Closed
(1 relates to)
There are no Sub-Tasks for this issue.
Gerrit Reviews
For Gerrit Dashboard: QTBUG-58259 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
186537,2 | Don't call releaseKey a second time if the insertion fails | 5.8 | qt/qtbase | Status: MERGED | +2 | 0 |