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

Invalid write and memory leaks in qt source file(QGraphicsxxx)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • None
    • 4.7.2
    • GUI: Painting
    • None

    Description

      SOFTWARE VERSION:
      libmeegotouchcore0 0.21.6-2+0m6

      APPLICATION:
      meegotouch-demos-widgetsgallery 0.21.6-2+0m6

      PRECONDITIONS:
      run command:
      valgrind --tool=memcheck --leak-check=full --leak-check=full
      --show-reachable=yes -v --log-file=widgetsgallery20-1.log
      /usr/bin/widgetsgallery

      STEPS:
      run above command-select applications VIEW- then apps menu,come back to main
      menu.tap other all options-display mode,toolbar back to page now tap on simple
      widget and all its sub options(play with image operations).
      I suggest to play with all options on app while running it with valgrind.
      both Invalid write and memory leaks.


      ==6451== Invalid write of size 4
      ==6451== at 0x52B7534: QGraphicsItemPrivate::resetFocusProxy()
      (qgraphicsitem.cpp:5618)
      ==6451== by 0x52F2287:
      QGraphicsScenePrivate::removeItemHelper(QGraphicsItem*)
      (qgraphicsscene.cpp:616)
      ==6451== by 0x52C3BEB: QGraphicsItem::~QGraphicsItem()
      (qgraphicsitem.cpp:1493)
      ==6451== by 0x5325E23: QGraphicsWidget::~QGraphicsWidget()
      (qgraphicsitem.h:548)
      ==6451== by 0x4A2A423: MWidget::~MWidget() (mwidget.cpp:115)
      ==6451== by 0x4A2F663: MWidgetController::~MWidgetController()
      (mwidgetcontroller.cpp:127)
      ==6451== by 0x4A694AF: MTextEdit::~MTextEdit() (mtextedit.cpp:1543)
      ==6451== by 0x52C3BCF: QGraphicsItem::~QGraphicsItem()
      (qgraphicsitem.cpp:1488)
      ==6451== by 0x5325E23: QGraphicsWidget::~QGraphicsWidget()
      (qgraphicsitem.h:548)
      ==6451== by 0x4A2A31B: MWidget::~MWidget() (mwidget.cpp:115)
      ==6451== by 0x52C3BCF: QGraphicsItem::~QGraphicsItem()
      (qgraphicsitem.cpp:1488)
      ==6451== by 0x5325E23: QGraphicsWidget::~QGraphicsWidget()
      (qgraphicsitem.h:548)


      also minor leak trace in another run:
      new leak1:
      ==6456== 4 bytes in 1 blocks are definitely lost in loss record 137 of 1,730
      ==6456== at 0x483590C: operator new(unsigned int) (vg_replace_malloc.c:255)
      ==6456== by 0x7ACCDEB: QMeeGoGraphicsSystemPlugin::create(QString const&)
      (qmeegographicssystemplugin.cpp:55)
      ==6456== by 0x4EBF7E3: QGraphicsSystemFactory::create(QString const&)
      (qgraphicssystemfactory.cpp:92)
      ==6456== by 0x4EBEC4F: QRuntimeGraphicsSystem::QRuntimeGraphicsSystem()
      (qgraphicssystem_runtime.cpp:347)
      ==6456== by 0x4EBF933: QGraphicsSystemFactory::create(QString const&)
      (qgraphicssystemfactory.cpp:85)
      ==6456== by 0x4D21FA7: qt_init(QApplicationPrivate*, int, _XDisplay*,
      unsigned long, unsigned long) (qapplication_x11.cpp:2024)


      leak2)
      it has missing symbol info in trace but sharing fro lcehck:
      ==6456== 4,884 (1,224 direct, 3,660 indirect) bytes in 3 blocks are definitely
      lost in loss record 1,722 of 1,730
      ==6456== at 0x483590C: operator new(unsigned int) (vg_replace_malloc.c:255)
      ==6456== by 0x52DE7A3:
      QGraphicsLinearLayout::QGraphicsLinearLayout(Qt::Orientation,
      QGraphicsLayoutItem*) (qgraphicslinearlayout.cpp:189)
      ==6456== by 0x7BF04B7: ???
      ==6456== by 0x7BF067B: ???
      ==6456== by 0x7BF186F: ???
      ==6456== by 0x49206E3: MClassFactory::createView(char const*,
      MWidgetController const*) const (mclassfactory.cpp:156)
      ==6456== by 0x49C1827: MTheme::view(MWidgetController const*)
      (mtheme.cpp:609)
      ==6456== by 0x4A2E703: MWidgetControllerPrivate::createView()
      (mwidgetcontroller.cpp:286)
      ==6456== by 0x4A2E73B: MWidgetController::view() const
      (mwidgetcontroller.cpp:157)
      ==6456== by 0x4A2F83B: MWidgetController::sizeHint(Qt::SizeHint, QSizeF
      const&) const (mwidgetcontroller.cpp:536)


      another minor leak3:
      ==6451== 4 bytes in 1 blocks are definitely lost in loss record 137 of 1,761
      ==6451== at 0x483590C: operator new(unsigned int) (vg_replace_malloc.c:255)
      ==6451== by 0x4EBF907: QGraphicsSystemFactory::create(QString const&)
      (qgraphicssystemfactory.cpp:83)
      ==6451== by 0x4EBDF17: QRuntimeGraphicsSystem::setGraphicsSystem(QString
      const&) (qgraphicssystem_runtime.cpp:383)
      ==6451== by 0x4C91DA3: QApplication::setGraphicsSystem(QString const&)
      (qapplication.cpp:1651)
      ==6451== by 0x638620B: QMeeGoGraphicsSystemHelper::switchToRaster()
      (qmeegographicssystemhelper.cpp:112)
      ==6451== by 0x493B11F:
      MGraphicsSystemHelper::switchToSoftwareRendering(MWindow*)
      (mgraphicssystemhelper.cpp:117)
      ==6451== by 0x4A7BA0F: MWindowPrivate::initSoftwareViewport()
      (mwindow.cpp:203)
      ==6451== by 0x4A7BE63:
      MWindowPrivate::handleWindowStateChangeEvent(QWindowStateChangeEvent*)
      (mwindow.cpp:672)
      ==6451== by 0x4A7CB1B: MWindow::event(QEvent*) (mwindow.cpp:1390)
      ==6451== by 0x4C9286B: QApplicationPrivate::notify_helper(QObject*, QEvent*)
      (qapplication.cpp:4463)
      ==6451== by 0x4C983FB: QApplication::notify(QObject*, QEvent*)
      (qapplication.cpp:4342)

      826 d->initSoftwareViewport();
      827 } else

      { 828 d->initGLViewport(); 829 }

      830
      please see this leak may also triggered by initGLViewport which also have call
      to q->setViewportUpdateMode(MWindow::FullViewportUpdate);.

      Attachments

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

        Activity

          People

            rodal Samuel Rødal
            mvehniai Mauri Vehniäinen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes