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

Crash when loading large JPG

    XMLWordPrintable

    Details

    • Commits:
      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

          For Gerrit Dashboard: QTBUG-58259
          # Subject Branch Project Status CR V

            Activity

              People

              Assignee:
              andysh Andy Shaw
              Reporter:
              mitch_curtis Mitch Curtis
              Votes:
              4 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes