CMake 3.11.0 crash in cmQtAutoGeneratorMocUic worker thread
Unhandled exception at 0x00000001406406A5 (cmake.exe) in cmake.exe.8240.dmp: 0xC0000005: Access violation reading location 0x0000000000000018. occurred.
This seems to happen with the new CMake 3.11.0 when our CI machine is under load. It has 16 cores (32 threads) and it will build up to two jobs at the same time. The jobs are build with ninja and will therefore run a lot of processes and put the machine under heavy load.
Our build of cmake including pdb files and the cmake.exe.8240.dmp can be found in http://spear.cph.karoshealth.com/~ts/cmake-3.11.0-autogen-crashes.zip. Note that the zip archive contains another dmp file, cmake.exe.8404.dmp, that I have created separate issue #17862 (closed) for.
> cmake.exe!cmsys::SystemTools::RelativePath(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & local, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & remote) Line 3288 C++ Symbols loaded.
cmake.exe!cmFilePathChecksum::get(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filePath) Line 70 C++ Symbols loaded.
cmake.exe!cmFilePathChecksum::getPart(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filePath, unsigned __int64 length) Line 86 C++ Symbols loaded.
cmake.exe!cmQtAutoGeneratorMocUic::JobMocT::Process(cmQtAutoGeneratorMocUic::WorkerT & wrk) Line 679 C++ Symbols loaded.
cmake.exe!cmQtAutoGeneratorMocUic::WorkerT::Loop() Line 1091 C++ Symbols loaded.
[Inline Frame] cmake.exe!std::_Invoker_pmf_pointer::_Call(void(cmQtAutoGeneratorMocUic::WorkerT::*)() _Pmf, cmQtAutoGeneratorMocUic::WorkerT * &&) Line 232 C++ Non-user code. Symbols loaded.
[Inline Frame] cmake.exe!std::invoke(void(cmQtAutoGeneratorMocUic::WorkerT::*)() &&) Line 232 C++ Non-user code. Symbols loaded.
[Inline Frame] cmake.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *>,std::default_delete<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *> > > >::_Execute(std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *> &) Line 240 C++ Non-user code. Symbols loaded.
[Inline Frame] cmake.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *>,std::default_delete<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *> > > >::_Run(std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *>,std::default_delete<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void),cmQtAutoGeneratorMocUic::WorkerT *> > > > *) Line 247 C++ Non-user code. Symbols loaded.
cmake.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void) __ptr64,cmQtAutoGeneratorMocUic::WorkerT * __ptr64>,std::default_delete<std::tuple<void (__cdecl cmQtAutoGeneratorMocUic::WorkerT::*)(void) __ptr64,cmQtAutoGeneratorMocUic::WorkerT * __ptr64> > > >::_Go() Line 232 C++ Non-user code. Symbols loaded.
cmake.exe!std::_Pad::_Call_func(void * _Data) Line 211 C++ Non-user code. Symbols loaded.
ucrtbase.dll!thread_start<unsigned int (__cdecl*)(void * __ptr64)>() Unknown Non-user code. Symbols loaded.
kernel32.dll!BaseThreadInitThunk() Unknown Non-user code. Symbols loaded.
ntdll.dll!RtlUserThreadStart() Unknown Non-user code. Symbols loaded.