Details
-
Bug
-
Resolution: Incomplete
-
Not Evaluated
-
None
-
5.0.0 RC 2
-
None
-
Kubuntu 12.10 64bit
Description
qmlscene will sometimes crash trying to render async.qml, as attached. It seems to be a race condition of some kind (threading?), since it is not consistently reproducible. I will normally get the crash after 3-10 runs.
It does not happen if the asynchronous property of the Image element is set to false instead of true.
It does not happen within gdb or valgrind, so difficult to debug. But it happens during startup, during QQuickView::show(). Stack trace from a core dump:
GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/aavit/qt/qt-s5/qtbase/bin/qmlscene...done. [New LWP 22209] [New LWP 22206] [New LWP 22205] [New LWP 22210] [New LWP 22208] [New LWP 22207] warning: Can't read pathname for load map: Input/output error. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `qmlscene async.qml'. Program terminated with signal 11, Segmentation fault. #0 malloc_consolidate (av=0x7f7208000020) at malloc.c:4238 4238 malloc.c: No such file or directory. (gdb) where #0 malloc_consolidate (av=0x7f7208000020) at malloc.c:4238 #1 0x00007f7228dd7b19 in malloc_consolidate (av=0x7f7208000020) at malloc.c:4215 #2 _int_free (av=0x7f7208000020, p=<optimized out>, have_lock=0) at malloc.c:4146 #3 0x00007f7227eace36 in ?? () from /usr/lib/nvidia-current/libGL.so.1 #4 0x00007f7227eb428f in ?? () from /usr/lib/nvidia-current/libGL.so.1 #5 0x00007f7227eac445 in ?? () from /usr/lib/nvidia-current/libGL.so.1 #6 0x00007f722bb60918 in dl_open_worker (a=0x7f721da4d0f0) at dl-open.c:294 #7 0x00007f722bb5c186 in _dl_catch_error (objname=0x7f721da4d138, errstring=0x7f721da4d140, mallocedp=0x7f721da4d14f, operate=0x7f722bb60710 <dl_open_worker>, args=0x7f721da4d0f0) at dl-error.c:178 #8 0x00007f722bb6032a in _dl_open (file=0x7f720800bbf8 "/home/aavit/qt/qt-s5/qtbase/plugins/imageformats/libqsvg.so", mode=-2147483647, caller_dlopen= 0x7f72299a1165 <QLibraryPrivate::load_sys()+1935>, nsid=-2, argc=2, argv=<optimized out>, env=0x7fffe24120a0) at dl-open.c:639 #9 0x00007f7226f7ff26 in dlopen_doit (a=0x7f721da4d310) at dlopen.c:67 #10 0x00007f722bb5c186 in _dl_catch_error (objname=0x7f7208006800, errstring=0x7f7208006808, mallocedp=0x7f72080067f8, operate=0x7f7226f7fec0 <dlopen_doit>, args=0x7f721da4d310) at dl-error.c:178 #11 0x00007f7226f8052f in _dlerror_run (operate=0x7f7226f7fec0 <dlopen_doit>, args=0x7f721da4d310) at dlerror.c:164 #12 0x00007f7226f7ffc1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:88 #13 0x00007f72299a1165 in QLibraryPrivate::load_sys (this=0x7f72080034a0) at plugin/qlibrary_unix.cpp:230 #14 0x00007f722999c0ad in QLibraryPrivate::load (this=0x7f72080034a0) at plugin/qlibrary.cpp:400 #15 0x00007f722999c3f6 in QLibraryPrivate::loadPlugin (this=0x7f72080034a0) at plugin/qlibrary.cpp:455 #16 0x00007f722999552b in QFactoryLoader::instance (this=0x7f7208002c40, index=3) at plugin/qfactoryloader.cpp:254 #17 0x00007f7229fb5c2d in createReadHandlerHelper (device=0x7f721da4dbb0, format=..., autoDetectImageFormat=true, ignoresFormatAndExtension=false) at image/qimagereader.cpp:300 #18 0x00007f7229fb6e64 in QImageReaderPrivate::initHandler (this=0x7f7208002c60) at image/qimagereader.cpp:594 #19 0x00007f7229fb7468 in QImageReader::format (this=0x7f721da4da20) at image/qimagereader.cpp:697 #20 0x00007f722b5b9f3b in readImage (url=..., dev=0x7f721da4dbb0, image=0x7f721da4dbd0, errorString=0x7f721da4db50, impsize=0x7f721da4db60, requestSize=...) at util/qquickpixmapcache.cpp:327 #21 0x00007f722b5bb96e in QQuickPixmapReader::processJob (this=0x199b240, runningJob=0x1997ce0, url=..., requestSize=...) at util/qquickpixmapcache.cpp:582 #22 0x00007f722b5baffd in QQuickPixmapReader::processJobs (this=0x199b240) at util/qquickpixmapcache.cpp:506 #23 0x00007f722b5bbfd2 in QQuickPixmapReader::run (this=0x199b240) at util/qquickpixmapcache.cpp:665 #24 0x00007f72297ba36b in QThreadPrivate::start (arg=0x199b240) at thread/qthread_unix.cpp:333 #25 0x00007f7227eb6734 in ?? () from /usr/lib/nvidia-current/libGL.so.1 #26 0x00007f7227bf5e9a in start_thread (arg=0x7f721da4e700) at pthread_create.c:308 #27 0x00007f7228e4bcbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #28 0x0000000000000000 in ?? ()
Note that the crash is not related to qtsvg, since it can be reproduced (although rarer) also if that plugin is not there. Then the stack trace shows crash during png reading (i.e. not plugin).