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

Opening the file dialog from imageviewer (Linux 64bit) via File/Open causes an exit crash.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P0: Blocker
    • 4.6.2
    • 4.6.1
    • None
    • None
    • Linux 64bit, KDE 4.3.2, Oxygen style
    • 465a63d00c2294641539af820435a9a4315f0251

    Description

      Both imageviewer and cpaster crashes, and the stacktrace seems to involve Oxygen style in both cases.

      Stacktrace for imageviewer:

      #0 0x00007ffff6fe33f1 in QBasicAtomicInt::operator== (this=0x0, value=0) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:70
      #1 0x00007ffff71b9c78 in qt_painter_removePaintDevice (dev=0xb1b880) at qt-46/src/gui/painting/qpainter.cpp:7532
      #2 0x00007ffff7194a5b in ~QPaintDevice (this=0xb1b880, __in_chrg=<value optimized out>) at painting/qpaintdevice.cpp:58
      #3 0x00007ffff711c47c in ~QPixmap (this=0xb1b880, __in_chrg=<value optimized out>) at image/qpixmap.cpp:325
      #4 0x00007ffff209b08c in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so
      #5 0x00007ffff20a7b87 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so
      #6 0x00007ffff20a7e56 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so
      #7 0x00007ffff5b5dc12 in __run_exit_handlers (status=0) at exit.c:78
      #8 *__GI_exit (status=0) at exit.c:100
      #9 0x00007ffff5b43ac4 in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>,
      init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack
      
      The test "qimage" apparently only checks whether the image format detection works. It probably should be extended to actually load the image?
      

      cpaster also crashes on exit with Oxygen style Linux 64bit KDE 4.3.2:

      Stacktrace:

      #0  0x00007f0bc64973f1 in QBasicAtomicInt::operator== (this=0x0, value=0) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:70
      #1  0x00007f0bc666dc70 in qt_painter_removePaintDevice (dev=0xdea0e8) at qt-46/src/gui/painting/qpainter.cpp:7532
      #2  0x00007f0bc6648a53 in ~QPaintDevice (this=0xdea0e8, __in_chrg=<value optimized out>)
          at  qt-46/src/gui/painting/qpaintdevice.cpp:58
      #3  0x00007f0bc65a2988 in ~QImage (this=0xdea0e8, __in_chrg=<value optimized out>) at qt-46/src/gui/image/qimage.cpp:1303
      #4  0x00007f0bc0d955d0 in KIconLoader::~KIconLoader() () from /usr/lib/libkdeui.so.5
      #5  0x00007f0bc4c96c12 in __run_exit_handlers (status=0) at exit.c:78
      #6  *__GI_exit (status=0) at exit.c:100
      #7  0x00007f0bc4c7cac4 in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>,
          init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff11072f08) at libc-start.c:252
      #8  0x0000000000407c19 in _start () at ../sysdeps/x86_64/elf/start.S:113
      

      Valgrind:

      ==3411== Invalid read of size 4
      ==3411==    at 0x50623F1: QBasicAtomicInt::operator==(int) const (qbasicatomic.h:70)
      ==3411==    by 0x5238C6F: qt_painter_removePaintDevice(QPaintDevice*) (qpainter.cpp:7532)
      ==3411==    by 0x5213A52: QPaintDevice::~QPaintDevice() (qpaintdevice.cpp:58)
      ==3411==    by 0x516D987: QImage::~QImage() (qimage.cpp:1303)
      ==3411==    by 0xB8E55CF: KIconLoader::~KIconLoader() (in /usr/lib/libkdeui.so.5.3.0)
      ==3411==    by 0x712CC11: exit (exit.c:78)
      ==3411==    by 0x7112AC3: (below main) (libc-start.c:252)
      ==3411==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
      ==3411== 
      ==3411== 
      ==3411== Process terminating with default action of signal 11 (SIGSEGV)
      ==3411==  Access not within mapped region at address 0x0
      ==3411==    at 0x50623F1: QBasicAtomicInt::operator==(int) const (qbasicatomic.h:70)
      ==3411==    by 0x5238C6F: qt_painter_removePaintDevice(QPaintDevice*) (qpainter.cpp:7532)
      ==3411==    by 0x5213A52: QPaintDevice::~QPaintDevice() (qpaintdevice.cpp:58)
      ==3411==    by 0x516D987: QImage::~QImage() (qimage.cpp:1303)
      ==3411==    by 0xB8E55CF: KIconLoader::~KIconLoader() (in /usr/lib/libkdeui.so.5.3.0)
      ==3411==    by 0x712CC11: exit (exit.c:78)
      ==3411==    by 0x7112AC3: (below main) (libc-start.c:252)
      ==3411==  If you believe this happened as a result of a stack
      ==3411==  overflow in your program's main thread (unlikely but
      ==3411==  possible), you can try to increase the size of the
      ==3411==  main thread stack using the --main-stacksize= flag.
      ==3411==  The main thread stack size used in this run was 8388608.
      ==3411== 
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            smd Jan Arve
            smd Jan Arve
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes