Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: cmake hang solution?



mlelstv%serpens.de@localhost (Michael van Elst) writes:

>chuq%chuq.com@localhost (Chuck Silvers) writes:

>>> would this apply to netbsd-9 too ? The hang I'm seeing is on a system
>>> with a HEAD kernel and a netbsd-9 userland 

>>it looks like the diff won't apply as-is, but I think the concept still applies.

>I'm currently testing:


Not really successful. I got a a hang with all but one threads
in park and one waiting for kqueue.

Parked threads look like:

#0  0x00007d0ce8ca220a in ___lwp_park60 () from /usr/lib/libc.so.12
#1  0x00007d0ce9e0addf in pthread_cond_timedwait () from /usr/lib/libpthread.so.1
#2  0x00007d0ce9aa1412 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/libstdc++.so.9
#3  0x00000000a48f7685 in cmWorkerPoolInternal::Work(unsigned int) ()
#4  0x00007d0ce9a9f5aa in ?? () from /usr/lib/libstdc++.so.9
#5  0x00007d0ce9e0c757 in ?? () from /usr/lib/libpthread.so.1
#6  0x00007d0ce8c87e10 in ?? () from /usr/lib/libc.so.12
#7  0x0000000000000000 in ?? ()

except for one:

#0  0x00007d0ce8ca220a in ___lwp_park60 () from /usr/lib/libc.so.12
#1  0x00007d0ce9e0addf in pthread_cond_timedwait () from /usr/lib/libpthread.so.1
#2  0x00007d0ce9aa1412 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/libstdc++.so.9
#3  0x00000000a48f812e in cmWorkerPoolWorker::RunProcess(cmWorkerPool::ProcessResultT&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#4  0x00000000a489731c in (anonymous namespace)::cmQtAutoMocUicT::JobT::RunProcess(cmQtAutoGen::GenT, cmWorkerPool::ProcessResultT&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) ()
#5  0x00000000a48aadc8 in (anonymous namespace)::cmQtAutoMocUicT::JobCompileMocT::Process() ()
#6  0x00000000a48f75b6 in cmWorkerPoolInternal::Work(unsigned int) ()
#7  0x00007d0ce9a9f5aa in ?? () from /usr/lib/libstdc++.so.9
#8  0x00007d0ce9e0c757 in ?? () from /usr/lib/libpthread.so.1
#9  0x00007d0ce8c87e10 in ?? () from /usr/lib/libc.so.12
#10 0x0000000000000000 in ?? ()

The kqueue wait looks like:

#0  0x00007d0ce8c42e6a in _sys___kevent50 () from /usr/lib/libc.so.12
#1  0x00007d0ce9e07cb9 in __kevent50 () from /usr/lib/libpthread.so.1
#2  0x00007d0ceac1c650 in uv.io_poll () from /usr/pkg/lib/libuv.so.1
#3  0x00007d0ceac0de48 in uv_run () from /usr/pkg/lib/libuv.so.1
#4  0x00000000a48f70a8 in cmWorkerPoolInternal::Process() ()
#5  0x00000000a48f7102 in cmWorkerPool::Process(void*) ()
#6  0x00000000a48ae2bf in (anonymous namespace)::cmQtAutoMocUicT::Process() ()
#7  0x00000000a4b8b2ea in cmQtAutoGenerator::Run(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >) ()
#8  0x00000000a489b150 in cmQtAutoMocUic(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >) ()
#9  0x00000000a4838c3c in cmcmd::ExecuteCMakeCommand(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::unique_ptr<cmConsoleBuf, std::default_delete<cmConsoleBuf> >) ()
#10 0x00000000a4c3c6bc in main ()




Home | Main Index | Thread Index | Old Index