Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-30204

TaskTree: Crash in dataExchange example

    XMLWordPrintable

Details

    • All
    • 14f695402 (master)

    Description

      Crash happened after clicking stop button during downloading. The call stack:

      Thread 1 (Thread 0x7f94bbf75e80 (LWP 185132)):
      #0  QList<Tasking::StorageBase>::size (this=0x660069007b0095) at /home/jarek/dev/qt-65-build/qtbase/include/QtCore/../../../../qt-65/qtbase/src/corelib/tools/qlist.h:378
      #1  0x00005580e18750b9 in Tasking::RuntimeContainer::~RuntimeContainer (this=0x5580e22152f0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1603
      #2  0x00005580e188413a in std::_Optional_payload_base<Tasking::RuntimeContainer>::_M_destroy (this=0x5580e22152f0) at /usr/include/c++/11/optional:260
      #3  0x00005580e187dd68 in std::_Optional_payload_base<Tasking::RuntimeContainer>::_M_reset (this=0x5580e22152f0) at /usr/include/c++/11/optional:280
      #4  0x00005580e18783ae in std::_Optional_payload<Tasking::RuntimeContainer, false, false, false>::~_Optional_payload (this=0x5580e22152f0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:401
      #5  0x00005580e187523e in std::_Optional_base<Tasking::RuntimeContainer, false, false>::~_Optional_base (this=0x5580e22152f0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:472
      #6  0x00005580e187525e in std::optional<Tasking::RuntimeContainer>::~optional (this=0x5580e22152f0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:662
      #7  0x00005580e187d758 in Tasking::RuntimeTask::~RuntimeTask (this=0x5580e22152e0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1637
      #8  0x00005580e187d782 in std::default_delete<Tasking::RuntimeTask>::operator() (this=0x5580e2105d70, __ptr=0x5580e22152e0) at /usr/include/c++/11/bits/unique_ptr.h:85
      #9  0x00005580e1877db4 in std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >::~unique_ptr (this=0x5580e2105d70, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/unique_ptr.h:361
      #10 0x00005580e1891110 in std::_Destroy<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> > > (__pointer=0x5580e2105d70) at /usr/include/c++/11/bits/stl_construct.h:151
      #11 0x00005580e188aab1 in std::_Destroy_aux<false>::__destroy<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >*> (__first=0x5580e2105d70, __last=0x5580e2105d78) at /usr/include/c++/11/bits/stl_construct.h:163
      #12 0x00005580e188400c in std::_Destroy<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >*> (__first=0x5580e2105d70, __last=0x5580e2105d78) at /usr/include/c++/11/bits/stl_construct.h:196
      #13 0x00005580e187daa3 in std::_Destroy<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >*, std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> > > (__first=0x5580e2105d70, __last=0x5580e2105d78) at /usr/include/c++/11/bits/alloc_traits.h:848
      #14 0x00005580e1878103 in std::vector<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >, std::allocator<std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> > > >::~vector (this=0x5580e2169a28, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/stl_vector.h:680
      #15 0x00005580e187ef80 in Tasking::RuntimeIteration::~RuntimeIteration (this=0x5580e2169a10, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1572
      #16 0x00005580e187efaa in std::default_delete<Tasking::RuntimeIteration>::operator() (this=0x5580e21fdd10, __ptr=0x5580e2169a10) at /usr/include/c++/11/bits/unique_ptr.h:85
      #17 0x00005580e1879274 in std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> >::~unique_ptr (this=0x5580e21fdd10, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/unique_ptr.h:361
      #18 0x00005580e1891141 in std::_Destroy<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> > > (__pointer=0x5580e21fdd10) at /usr/include/c++/11/bits/stl_construct.h:151
      #19 0x00005580e188ab23 in std::_Destroy_aux<false>::__destroy<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> >*> (__first=0x5580e21fdd10, __last=0x5580e21fdd18) at /usr/include/c++/11/bits/stl_construct.h:163
      #20 0x00005580e1884078 in std::_Destroy<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> >*> (__first=0x5580e21fdd10, __last=0x5580e21fdd18) at /usr/include/c++/11/bits/stl_construct.h:196
      #21 0x00005580e187dc67 in std::_Destroy<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> >*, std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> > > (__first=0x5580e21fdd10, __last=0x5580e21fdd18) at /usr/include/c++/11/bits/alloc_traits.h:848
      #22 0x00005580e1878233 in std::vector<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> >, std::allocator<std::unique_ptr<Tasking::RuntimeIteration, std::default_delete<Tasking::RuntimeIteration> > > >::~vector (this=0x5580e21afb20, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/stl_vector.h:680
      #23 0x00005580e187519e in Tasking::RuntimeContainer::~RuntimeContainer (this=0x5580e21afae0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1610
      #24 0x00005580e188413a in std::_Optional_payload_base<Tasking::RuntimeContainer>::_M_destroy (this=0x5580e21afae0) at /usr/include/c++/11/optional:260
      #25 0x00005580e187dd68 in std::_Optional_payload_base<Tasking::RuntimeContainer>::_M_reset (this=0x5580e21afae0) at /usr/include/c++/11/optional:280
      #26 0x00005580e18783ae in std::_Optional_payload<Tasking::RuntimeContainer, false, false, false>::~_Optional_payload (this=0x5580e21afae0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:401
      #27 0x00005580e187523e in std::_Optional_base<Tasking::RuntimeContainer, false, false>::~_Optional_base (this=0x5580e21afae0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:472
      #28 0x00005580e187525e in std::optional<Tasking::RuntimeContainer>::~optional (this=0x5580e21afae0, __in_chrg=<optimized out>) at /usr/include/c++/11/optional:662
      #29 0x00005580e187d758 in Tasking::RuntimeTask::~RuntimeTask (this=0x5580e21afad0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1637
      #30 0x00005580e187d782 in std::default_delete<Tasking::RuntimeTask>::operator() (this=0x7f949402dd18, __ptr=0x5580e21afad0) at /usr/include/c++/11/bits/unique_ptr.h:85
      #31 0x00005580e1877db4 in std::unique_ptr<Tasking::RuntimeTask, std::default_delete<Tasking::RuntimeTask> >::~unique_ptr (this=0x7f949402dd18, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/unique_ptr.h:361
      #32 0x00005580e1875438 in Tasking::TaskTreePrivate::~TaskTreePrivate (this=0x7f949402dbe0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:1475
      #33 0x00005580e186e1c2 in Tasking::TaskTree::~TaskTree (this=0x5580e21673a0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:2739
      #34 0x00005580e186e212 in Tasking::TaskTree::~TaskTree (this=0x5580e21673a0, __in_chrg=<optimized out>) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktree.cpp:2740
      #35 0x00005580e18802c7 in std::default_delete<Tasking::TaskTree>::operator() (this=0x7ffd69d854e8, __ptr=0x5580e21673a0) at /usr/include/c++/11/bits/unique_ptr.h:85
      #36 0x00005580e189f124 in std::__uniq_ptr_impl<Tasking::TaskTree, std::default_delete<Tasking::TaskTree> >::reset (this=0x7ffd69d854e8, __p=0x0) at /usr/include/c++/11/bits/unique_ptr.h:182
      #37 0x00005580e189f081 in std::unique_ptr<Tasking::TaskTree, std::default_delete<Tasking::TaskTree> >::reset (this=0x7ffd69d854e8, __p=0x0) at /usr/include/c++/11/bits/unique_ptr.h:456
      #38 0x00005580e189edd9 in Tasking::TaskTreeRunner::reset (this=0x7ffd69d854d8) at /home/jarek/dev/creator-master/src/libs/solutions/tasking/tasktreerunner.cpp:31
      #39 0x00005580e18afb9a in operator() (__closure=0x5580e220aab0) at /home/jarek/dev/creator-master/tests/manual/tasking/dataexchange/viewer.cpp:79
      #40 0x00005580e18b18dc in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Viewer::Viewer(QWidget*)::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffd69d84020) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:129
      #41 0x00005580e18b146b in QtPrivate::Functor<Viewer::Viewer(QWidget*)::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffd69d84020) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:243
      #42 0x00005580e18b10a2 in QtPrivate::QFunctorSlotObject<Viewer::Viewer(QWidget*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x5580e220aaa0, r=0x7ffd69d85360, a=0x7ffd69d84020, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:457
      #43 0x00007f94ba79dc13 in QtPrivate::QSlotObjectBase::call (this=0x5580e220aaa0, r=0x7ffd69d85360, a=0x7ffd69d84020) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:374
      #44 0x00007f94ba816714 in doActivate<false> (sender=0x5580e2102a70, signal_index=9, argv=0x7ffd69d84020) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4036
      #45 0x00007f94ba80c6b9 in QMetaObject::activate (sender=0x5580e2102a70, m=0x7f94bcb75ba0 <QAbstractButton::staticMetaObject>, local_signal_index=2, argv=0x7ffd69d84020) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4096
      #46 0x00007f94bc3979b3 in QAbstractButton::clicked (this=0x5580e2102a70, _t1=false) at /home/jarek/dev/qt-65-build/qtbase/src/widgets/Widgets_autogen/include/moc_qabstractbutton.cpp:411
      #47 0x00007f94bc394ded in QAbstractButtonPrivate::emitClicked (this=0x5580e2150620) at /home/jarek/dev/qt-65/qtbase/src/widgets/widgets/qabstractbutton.cpp:379
      #48 0x00007f94bc394d57 in QAbstractButtonPrivate::click (this=0x5580e2150620) at /home/jarek/dev/qt-65/qtbase/src/widgets/widgets/qabstractbutton.cpp:372
      #49 0x00007f94bc3964fe in QAbstractButton::mouseReleaseEvent (this=0x5580e2102a70, e=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/widgets/qabstractbutton.cpp:974
      #50 0x00007f94bc23a078 in QWidget::event (this=0x5580e2102a70, event=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qwidget.cpp:8944
      #51 0x00007f94bc3962ca in QAbstractButton::event (this=0x5580e2102a70, e=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/widgets/qabstractbutton.cpp:931
      #52 0x00007f94bc4ce714 in QPushButton::event (this=0x5580e2102a70, e=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/widgets/qpushbutton.cpp:686
      #53 0x00007f94bc1a9d96 in QApplicationPrivate::notify_helper (this=0x5580e2079e60, receiver=0x5580e2102a70, e=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:3290
      #54 0x00007f94bc1a79d1 in QApplication::notify (this=0x7ffd69d85330, receiver=0x5580e2102a70, e=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:2777
      #55 0x00007f94ba77a435 in QCoreApplication::notifyInternal2 (receiver=0x5580e2102a70, event=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1119
      #56 0x00007f94ba77b067 in QCoreApplication::sendSpontaneousEvent (receiver=0x5580e2102a70, event=0x7ffd69d84870) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1551
      #57 0x00007f94bc1a647c in QApplicationPrivate::sendMouseEvent (receiver=0x5580e2102a70, event=0x7ffd69d84870, alienWidget=0x5580e2102a70, nativeWidget=0x7ffd69d85360, buttonDown=0x7f94bcbaeed0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:2361
      #58 0x00007f94bc26dd70 in QWidgetWindow::handleMouseEvent (this=0x5580e2201340, event=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qwidgetwindow.cpp:623
      #59 0x00007f94bc26c1b3 in QWidgetWindow::event (this=0x5580e2201340, event=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qwidgetwindow.cpp:241
      #60 0x00007f94bc1a9d96 in QApplicationPrivate::notify_helper (this=0x5580e2079e60, receiver=0x5580e2201340, e=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:3290
      #61 0x00007f94bc1a9b88 in QApplication::notify (this=0x7ffd69d85330, receiver=0x5580e2201340, e=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:3241
      #62 0x00007f94ba77a435 in QCoreApplication::notifyInternal2 (receiver=0x5580e2201340, event=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1119
      #63 0x00007f94ba77b067 in QCoreApplication::sendSpontaneousEvent (receiver=0x5580e2201340, event=0x7ffd69d84df0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1551
      #64 0x00007f94bb1e7525 in QGuiApplicationPrivate::processMouseEvent (e=0x5580e2189270) at /home/jarek/dev/qt-65/qtbase/src/gui/kernel/qguiapplication.cpp:2316
      #65 0x00007f94bb1e683c in QGuiApplicationPrivate::processWindowSystemEvent (e=0x5580e2189270) at /home/jarek/dev/qt-65/qtbase/src/gui/kernel/qguiapplication.cpp:2065
      #66 0x00007f94bb299dac in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /home/jarek/dev/qt-65/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1094
      #67 0x00007f94b730ffcc in xcbSourceDispatch (source=0x5580e20e88a0) at /home/jarek/dev/qt-65/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
      #68 0x00007f94b9d1bd3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #69 0x00007f94b9d71258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #70 0x00007f94b9d193e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #71 0x00007f94babce89a in QEventDispatcherGlib::processEvents (this=0x5580e20df6a0, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:393
      #72 0x00007f94b731022a in QXcbGlibEventDispatcher::processEvents (this=0x5580e20df6a0, flags=...) at /home/jarek/dev/qt-65/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
      #73 0x00007f94ba78e941 in QEventLoop::processEvents (this=0x7ffd69d852b0, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventloop.cpp:100
      #74 0x00007f94ba78ecb0 in QEventLoop::exec (this=0x7ffd69d852b0, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventloop.cpp:182
      #75 0x00007f94ba77ada0 in QCoreApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1440
      #76 0x00007f94bb1e6146 in QGuiApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/gui/kernel/qguiapplication.cpp:1925
      #77 0x00007f94bc1a6d83 in QApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:2569
      #78 0x00005580e189fb5d in main (argc=1, argv=0x7ffd69d85628) at /home/jarek/dev/creator-master/tests/manual/tasking/dataexchange/main.cpp:16
      

      When fixed, provide a test for it.

      TODO: Clarify in docs that sending done() signal directly from TaskAdapter's d'tor is a misuse and this signal will be ignored anyway.

      Attachments

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

        Activity

          People

            jkobus Jarek Kobus
            jkobus Jarek Kobus
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes