Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
Qt Creator 13.0.0-beta1
-
None
-
-
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
For Gerrit Dashboard: QTCREATORBUG-30204 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
530524,4 | TaskTree: Disconnect from task's done() signal on destruction | master | qt-creator/qt-creator | Status: MERGED | +2 | 0 |