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

Windows: tst_qfiledialog crash (completer_up())/widgets based dialog.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.6.0 Alpha
    • Fix Version/s: 5.6.1
    • Labels:
    • Environment:
      Windows 10 64-bit, MSVC 2013 64-bit build
    • Commits:
      ea757da43697787cfcd1c01f11bd2b0288c679fe (qtbase/5.6, 26.2.2016, 5.6.1)

      Description

      This autotest always crashes:

      QWARN : tst_QFiledialog::completer_up() QWidget::repaint: Recursive repaint detected
      crash occurred in D:\Dev\Rand_repos\qt5\qtbase\tests\auto\widgets\dialogs\qfiledialog\debug\tst_qfiledialog.exe.
      
      Exception address: 0x00007FFC84783D1E
      Exception code   : 0xc0000005
      Nearby symbol    : QTransform::type
      
      Stack:
      #  1: windowsFaultHandler() - 0x00007FFC9A83AE30
      #  2: UnhandledExceptionFilter() - 0x00007FFCBB460180
      #  3: memset() - 0x00007FFCBE8C8140
      #  4: _C_specific_handler() - 0x00007FFCBE8B3ED0
      #  5: _chkstk() - 0x00007FFCBE8C6240
      #  6: RtlWalkFrameChain() - 0x00007FFCBE8426A0
      #  7: KiUserExceptionDispatcher() - 0x00007FFCBE8C5410
      #  8: QTransform::type() - 0x00007FFC84783D10
      #  9: QRasterPaintEngine::drawImage() - 0x00007FFC846D61E0
      # 10: QRasterPaintEngine::drawPixmap() - 0x00007FFC846D5580
      # 11: QPainter::drawPixmap() - 0x00007FFC846FA790
      # 12: QPainter::drawPixmap() - 0x00007FFC842C1D20
      # 13: QPixmapIconEngine::paint() - 0x00007FFC84422680
      # 14: QIcon::paint() - 0x00007FFC84420930
      # 15: QItemDelegate::drawDecoration() - 0x0000000067598510
      # 16: QItemDelegate::paint() - 0x0000000067596B50
      # 17: QCompleterItemDelegate::paint() - 0x000000006770D4F0
      # 18: QListView::paintEvent() - 0x0000000067542640
      # 19: QWidget::event() - 0x000000006712AEC0
      # 20: QFrame::event() - 0x000000006730FD50
      # 21: QAbstractScrollArea::viewportEvent() - 0x00000000673F74C0
      # 22: QAbstractItemView::viewportEvent() - 0x00000000675165A0
      # 23: QAbstractScrollAreaPrivate::viewportEvent() - 0x00000000670B80F0
      # 24: QAbstractScrollAreaFilter::eventFilter() - 0x00000000673FC620
      # 25: QCoreApplicationPrivate::sendThroughObjectEventFilters() - 0x0000000066926AD0
      # 26: QApplicationPrivate::notify_helper() - 0x00000000670C3F60
      # 27: QApplication::notify() - 0x00000000670BE8F0
      # 28: QCoreApplication::notifyInternal2() - 0x0000000066925DD0
      # 29: QCoreApplication::sendSpontaneousEvent() - 0x0000000066A91150
      # 30: QWidgetPrivate::sendPaintEvent() - 0x00000000671357E0
      # 31: QWidgetPrivate::drawWidget() - 0x0000000067134880
      # 32: QWidgetPrivate::paintSiblingsRecursive() - 0x0000000067135860
      # 33: QWidgetPrivate::paintSiblingsRecursive() - 0x0000000067135860
      # 34: QWidgetPrivate::drawWidget() - 0x0000000067134880
      # 35: QWidgetBackingStore::doSync() - 0x00000000670DC9B0
      # 36: QWidgetBackingStore::sync() - 0x00000000670DAD50
      # 37: QWidgetPrivate::syncBackingStore() - 0x0000000067137E70
      # 38: QWidget::event() - 0x000000006712AEC0
      # 39: QFrame::event() - 0x000000006730FD50
      # 40: QAbstractScrollArea::event() - 0x00000000673F6C50
      # 41: QAbstractItemView::event() - 0x00000000675163B0
      # 42: QListView::event() - 0x0000000067541730
      # 43: QApplicationPrivate::notify_helper() - 0x00000000670C3F60
      # 44: QApplication::notify() - 0x00000000670BE8F0
      # 45: QCoreApplication::notifyInternal2() - 0x0000000066925DD0
      # 46: QCoreApplication::sendEvent() - 0x0000000066930AE0
      # 47: QCoreApplicationPrivate::sendPostedEvents() - 0x0000000066927230
      # 48: QEventDispatcherWin32::sendPostedEvents() - 0x00000000669DC490
      # 49: QWindowsGuiEventDispatcher::sendPostedEvents() - 0x00007FFC95D1FB90
      # 50: qt_internal_proc() - 0x00000000669D9AB0
      # 51: DispatchMessageW() - 0x00007FFCBC6DFA50
      # 52: DispatchMessageW() - 0x00007FFCBC6DFA50
      # 53: QEventDispatcherWin32::processEvents() - 0x00000000669DA2B0
      # 54: QWindowsGuiEventDispatcher::processEvents() - 0x00007FFC95D1F920
      # 55: QCoreApplication::processEvents() - 0x0000000066923D00
      # 56: tst_QFiledialog::completer_up() - 0x00007FF6C998B2D0
      # 57: tst_QFiledialog::qt_static_metacall() - 0x00007FF6C9984FB0
      # 58: QMetaMethod::invoke() - 0x00000000669348E0
      # 59: QMetaObject::invokeMethod() - 0x00000000669336A0
      # 60: QMetaObject::invokeMethod() - 0x0000000066542850
      # 61: QTest::qInvokeTestMethodDataEntry() - 0x00007FFC9A8396B0
      # 62: QTest::qInvokeTestMethod() - 0x00007FFC9A839F80
      # 63: QTest::qInvokeTestMethods() - 0x00007FFC9A83A6A0
      # 64: QTest::qExec() - 0x00007FFC9A8346F0
      # 65: main() - 0x00007FF6C999C960
      # 66: __tmainCRTStartup() - 0x00007FF6C99B2B20
      # 67: mainCRTStartup() - 0x00007FF6C99B2DE0
      # 68: BaseThreadInitThunk() - 0x00007FFCBDEA2D70
      # 69: RtlUserThreadStart() - 0x00007FFCBE839F30
      

      qtbase\src\gui\painting\qpaintengine_raster.cpp:2095

      void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRectF &sr,
                                         Qt::ImageConversionFlags)
      {
          Q_D(QRasterPaintEngine);
          QRasterPaintEngineState *s = state();
      //...
          if (s->matrix.type() <= QTransform::TxScale && !s->flags.antialiased && sr_l == sr_r && sr_t == sr_b) {
      }
      

      This crash occurred because state() returns NULL.

        Attachments

        1. qtbug48823_diag_widgets_drawing.diff
          34 kB
        2. qtbug48823_diag.diff
          5 kB
        3. qtbug48823_orig.zip
          9 kB
        4. qtbug48823_recursive_repaint_stack.txt
          33 kB
        5. qtbug48823_win10_log.txt
          6 kB
        6. qtbug48823.zip
          2 kB
        7. qtcreatorbug14888_2_trace.txt
          33 kB

          Issue Links

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

            Activity

              People

              • Assignee:
                kleint Friedemann Kleint
                Reporter:
                maksqwe Maks Naumov
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: