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

Fix automoc hangs when building

    XMLWordPrintable

Details

    • User Story
    • Resolution: Done
    • P1: Critical
    • 6.0.0
    • None
    • Build System
    • None
    • macOS
    • 890ddd254087da9a6008e9fe5639ffd3a35f1b8b (qt/qtbase/wip/cmake)

    Description

      Both me and liaqi are sometimes experiencing hangs while building. Apparently it happened in the Coin test runs as well.

      It seems to be automoc hanging.
      Attaching a process sample from Activity Monitor.

      Call graph:
          2931 Thread_1040072   DispatchQueue_1: com.apple.main-thread  (serial)
          + 2931 start  (in libdyld.dylib) + 1  [0x7fff5d19fed9]
          +   2931 main  (in cmake) + 375  [0x109350497]  cmakemain.cxx:199
          +     2931 do_command(int, char const* const*)  (in cmake) + 1240  [0x109353768]  cmakemain.cxx:116
          +       2931 cmcmd::ExecuteCMakeCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&)  (in cmake) + 47450  [0x10937294a]  cmcmd.cxx:1027
          +         2931 cmQtAutoGenerator::Run(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)  (in cmake) + 2898  [0x109a761a2]  cmQtAutoGenerator.cxx:706
          +           2931 cmQtAutoGeneratorMocUic::Process()  (in cmake) + 61  [0x109b0836d]  cmQtAutoGeneratorMocUic.cxx:1513
          +             2931 uv_run  (in cmake) + 207  [0x10a48e6df]  core.c:374
          +               2931 uv__io_poll  (in cmake) + 1995  [0x10a4a993b]  kqueue.c:214
          +                 2931 kevent  (in libsystem_kernel.dylib) + 10  [0x7fff5d2df716]
          2931 Thread_1040114
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
          +           2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
          +             2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +               2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                 2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040117
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 143  [0x109af33bf]  cmQtAutoGeneratorMocUic.cxx:1094
          +           2931 cmQtAutoGeneratorMocUic::JobMocT::Process(cmQtAutoGeneratorMocUic::WorkerT&)  (in cmake) + 4575  [0x109ae78df]  cmQtAutoGeneratorMocUic.cxx:698
          +             2931 cmQtAutoGeneratorMocUic::JobMocT::GenerateMoc(cmQtAutoGeneratorMocUic::WorkerT&)  (in cmake) + 4831  [0x109aee3ff]  cmQtAutoGeneratorMocUic.cxx:856
          +               2931 cmQtAutoGeneratorMocUic::WorkerT::RunProcess(cmQtAutoGen::GenT, cmQtAutoGenerator::ProcessResultT&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)  (in cmake) + 2739  [0x109ae6623]  cmQtAutoGeneratorMocUic.cxx:1083
          +                 2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +                   2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                     2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040120
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
          +           2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
          +             2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +               2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                 2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040122
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 143  [0x109af33bf]  cmQtAutoGeneratorMocUic.cxx:1094
          +           2931 cmQtAutoGeneratorMocUic::JobMocT::Process(cmQtAutoGeneratorMocUic::WorkerT&)  (in cmake) + 4575  [0x109ae78df]  cmQtAutoGeneratorMocUic.cxx:698
          +             2931 cmQtAutoGeneratorMocUic::JobMocT::GenerateMoc(cmQtAutoGeneratorMocUic::WorkerT&)  (in cmake) + 4831  [0x109aee3ff]  cmQtAutoGeneratorMocUic.cxx:856
          +               2931 cmQtAutoGeneratorMocUic::WorkerT::RunProcess(cmQtAutoGen::GenT, cmQtAutoGenerator::ProcessResultT&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)  (in cmake) + 2739  [0x109ae6623]  cmQtAutoGeneratorMocUic.cxx:1083
          +                 2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +                   2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                     2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040123
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
          +           2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
          +             2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +               2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                 2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040124
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
          +           2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
          +             2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +               2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                 2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040127
          + 2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
          +   2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
          +     2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
          +       2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
          +         2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
          +           2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
          +             2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
          +               2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
          +                 2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
          2931 Thread_1040128
            2931 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
              2931 _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
                2931 _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
                  2931 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
                    2931 cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
                      2931 cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
                        2931 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
                          2931 _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
                            2931 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff5d2dc7de]
      
      Total number in stack (recursive counted multiple, when >=5):
              8       __psynch_cvwait  (in libsystem_kernel.dylib) + 0  [0x7fff5d2dc7d4]
              8       _pthread_body  (in libsystem_pthread.dylib) + 126  [0x7fff5d393305]
              8       _pthread_cond_wait  (in libsystem_pthread.dylib) + 724  [0x7fff5d396593]
              8       _pthread_start  (in libsystem_pthread.dylib) + 70  [0x7fff5d39626f]
              8       std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff5a874bda]
              8       thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5d392415]
              8       void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (cmQtAutoGeneratorMocUic::WorkerT::*)(), cmQtAutoGeneratorMocUic::WorkerT*> >(void*)  (in cmake) + 661  [0x109b2def5]  type_traits:4369
              6       cmQtAutoGeneratorMocUic::WorkerSwapJob(std::__1::unique_ptr<cmQtAutoGeneratorMocUic::JobT, std::__1::default_delete<cmQtAutoGeneratorMocUic::JobT> >&)  (in cmake) + 822  [0x109af3db6]  cmQtAutoGeneratorMocUic.cxx:1797
              6       cmQtAutoGeneratorMocUic::WorkerT::Loop()  (in cmake) + 53  [0x109af3365]  cmQtAutoGeneratorMocUic.cxx:1092
      
      Sort by top of stack, same collapsed (when >= 5):
              __psynch_cvwait  (in libsystem_kernel.dylib)        23448
              kevent  (in libsystem_kernel.dylib)        2931
      
      

      Attachments

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

        Activity

          People

            alexandru.croitor Alexandru Croitor
            alexandru.croitor Alexandru Croitor
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes