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

Sometimes crash in qmlscene with asynchronous Image element

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • Not Evaluated
    • None
    • 5.0.0 RC 2
    • Image formats
    • 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).

      Attachments

        1. async.qml
          0.6 kB
        2. face-smile.png
          face-smile.png
          15 kB
        3. systeminfo.txt
          48 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            vgt Eirik Aavitsland
            vgt Eirik Aavitsland
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes