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

Crash after starting CMake Profiler

    XMLWordPrintable

Details

    • Linux/X11
    • c05f9cacc (12.0)

    Description

      To reproduce:
      1. Open a session containing Creator project
      2. Start Analyze | CMake Profiler. After about 10 seconds: crash.

      Once, I got the following assert prior to the crash:

      ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 0x0x556731bf76c0. Receiver '' (of type 'CtfVisualizer::Internal::CtfVisualizerTool') was created in thread 0x0x55672ef694f0", file /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp, line 535
      

      The crash happen in non-main thread.

      Call stack:

      Thread 1 (Thread 0x7f5f617fa640 (LWP 124213)):
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140047634376256) at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=140047634376256) at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=140047634376256, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
      #3  0x00007f6105e42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      #4  0x00007f6105e287f3 in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007f61066c52e0 in qAbort () at /home/jarek/dev/qt-65/qtbase/src/corelib/global/qglobal.cpp:161
      #6  0x00007f61066d51aa in qt_message_fatal (context=..., message=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/global/qlogging.cpp:2059
      #7  0x00007f61066d13ae in QMessageLogger::fatal (this=0x7f5f617f9040, msg=0x7f6106c0d6e0 "ASSERT failure in %s: \"%s\", file %s, line %d") at /home/jarek/dev/qt-65/qtbase/src/corelib/global/qlogging.cpp:939
      #8  0x00007f61066c32a5 in qt_assert_x (where=0x7f6106c201d1 "QCoreApplication::sendEvent", what=0x7f5f05368f50 "Cannot send events to objects owned by a different thread. Current thread 0x0x556731bf76c0. Receiver '' (of type 'CtfVisualizer::Internal::CtfVisualizerTool') was created in thread 0x0x55672ef694f0", file=0x7f6106c1fe08 "/home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp", line=535) at /home/jarek/dev/qt-65/qtbase/src/corelib/global/qassert.cpp:77
      #9  0x00007f61067791da in QCoreApplicationPrivate::checkReceiverThread (receiver=0x55672fe12e50) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:535
      #10 0x00007f61085a5dc3 in QApplication::notify (this=0x55672ef85f80, receiver=0x55672fe12e50, e=0x7f5f617f9460) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:2584
      #11 0x00007f610677a405 in QCoreApplication::notifyInternal2 (receiver=0x55672fe12e50, event=0x7f5f617f9460) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1118
      #12 0x00007f610677afa7 in QCoreApplication::sendEvent (receiver=0x55672fe12e50, event=0x7f5f617f9460) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1536
      #13 0x00007f61068060ed in QObjectPrivate::setParent_helper (this=0x55672fe13c60, o=0x55672fe12e50) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:2264
      #14 0x00007f6106805ad6 in QObject::setParent (this=0x55672fe13c40, parent=0x55672fe12e50) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:2189
      #15 0x00007f60e424b874 in operator() (__closure=0x556731c82de8) at /home/jarek/dev/creator-12/src/plugins/ctfvisualizer/ctfvisualizertool.cpp:175
      #16 0x00007f60e424f75d in std::__invoke_impl<void, CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
      #17 0x00007f60e424f73a in std::__invoke<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/11/bits/invoke.h:96
      #18 0x00007f60e424f717 in std::invoke<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/11/functional:97
      #19 0x00007f60e424f6d8 in operator()<>(void) (__closure=0x556731c82de8) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qthread.h:129
      #20 0x00007f60e424f69a in std::__invoke_impl<void, QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
      #21 0x00007f60e424f65d in std::__invoke<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> >(struct {...} &&) (__fn=...) at /usr/include/c++/11/bits/invoke.h:96
      #22 0x00007f60e424f60a in std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x556731c82de8) at /usr/include/c++/11/bits/std_thread.h:259
      #23 0x00007f60e424f5b4 in std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >::operator()(void) (this=0x556731c82de8) at /usr/include/c++/11/bits/std_thread.h:266
      #24 0x00007f60e424f3fa in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void>::operator()(void) const (this=0x7f5f617f9a50) at /usr/include/c++/11/future:1409
      #25 0x00007f60e424f30d in std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void> &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
      #26 0x00007f60e424f153 in std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void> &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:116
      #27 0x00007f60e424ef5a in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:291
      #28 0x00007f60e4252362 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=0x7f5f617f9a50) at /usr/include/c++/11/bits/std_function.h:590
      #29 0x00007f60e42515ce in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (this=0x556731c82dc0, __f=0x7f5f617f9a50, __did_set=0x7f5f617f99af) at /usr/include/c++/11/future:571
      #30 0x00007f60e42545b9 in std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__f=@0x7f5f617f99f0: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f60e4251594 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>, __t=@0x7f5f617f99c0: 0x556731c82dc0) at /usr/include/c++/11/bits/invoke.h:74
      #31 0x00007f60e4253633 in std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__fn=@0x7f5f617f99f0: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f60e4251594 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/11/bits/invoke.h:96
      #32 0x00007f60e42520ec in std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}::operator()() const (__closure=0x7f5f617f9930) at /usr/include/c++/11/mutex:776
      #33 0x00007f60e425366b in std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::{lambda()#1}::operator()() const (__closure=0x0) at /usr/include/c++/11/mutex:712
      #34 0x00007f60e4253680 in std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::{lambda()#1}::_FUN() () at /usr/include/c++/11/mutex:712
      #35 0x00007f6105e99f68 in __pthread_once_slow (once_control=0x556731c82dd8, init_routine=0x7f61062dad50 <__once_proxy>) at ./nptl/pthread_once.c:116
      #36 0x00007f60e4249f24 in __gthread_once (__once=0x556731c82dd8, __func=0x7f61062dad50 <__once_proxy>) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:700
      #37 0x00007f60e4252171 in std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__once=..., __f=@0x7f5f617f99f0: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f60e4251594 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/11/mutex:783
      #38 0x00007f60e42513a1 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (this=0x556731c82dc0, __res=..., __ignore_failure=true) at /usr/include/c++/11/future:411
      #39 0x00007f60e424fc1e in std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()> >(CtfVisualizer::Internal::CtfVisualizerTool::loadJson(const QString&)::<lambda()>&&)::<lambda(auto:32&& ...)> > >, void>::_M_complete_async(void) (this=0x556731c82dc0) at /usr/include/c++/11/future:1679
      #40 0x00007f610693e849 in std::__future_base::_State_baseV2::wait (this=0x556731c82dc0) at /usr/include/c++/11/future:333
      #41 0x00007f610693f164 in std::__basic_future<void>::_M_get_result (this=0x556731bf76d0) at /usr/include/c++/11/future:719
      #42 0x00007f610693e9db in std::future<void>::get (this=0x556731bf76d0) at /usr/include/c++/11/future:891
      #43 0x00007f610693ef1c in QThreadCreateThread::run (this=0x556731bf76c0) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qthread.cpp:1213
      #44 0x00007f6106a2e98f in operator() (__closure=0x7f5f617f9c98) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qthread_unix.cpp:321
      #45 0x00007f6106a2fc8b in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qthread_unix.cpp:257
      #46 0x00007f6106a2ea5b in QThreadPrivate::start (arg=0x556731bf76c0) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qthread_unix.cpp:280
      #47 0x00007f6105e94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #48 0x00007f6105f26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      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:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes