-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/engine
#41748Closed
Copy link
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: flakeTests that sometimes, but not always, incorrectly passTests that sometimes, but not always, incorrectly passe: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.
Description
reproduction
- Version: On a branch that has both [Impeller] removed collisions of dead command pools between tests. engine#41490 and [Impeller] Fixed blit command missing tracking and added mock vulkan for tests engine#41408 merged (which fix similar issues)
- OS: MacOS with MoltenVK
- Steps: Run
MallocScribble=1 ./out/host_debug_unopt_arm64/impeller_unittests --gtest_filter="*/Vulkan"repeatedly until the crash happens. It happens maybe 5% of the time.
This may be the same problem as #125519, just manifesting differently.
stacktrace
[ RUN ] Play/SceneTest.FlutterLogo/Vulkan
libc++abi: terminating due to uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument
Process 30347 stopped
* thread #18, name = 'io.worker.2', stop reason = signal SIGABRT
frame #0: 0x00000001a9f78724 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`:
-> 0x1a9f78724 <+8>: b.lo 0x1a9f78744 ; <+40>
0x1a9f78728 <+12>: pacibsp
0x1a9f7872c <+16>: stp x29, x30, [sp, #-0x10]!
0x1a9f78730 <+20>: mov x29, sp
Target 0: (impeller_unittests) stopped.
(lldb) bt
* thread #18, name = 'io.worker.2', stop reason = signal SIGABRT
* frame #0: 0x00000001a9f78724 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001a9fafc28 libsystem_pthread.dylib`pthread_kill + 288
frame #2: 0x00000001a9ebdae8 libsystem_c.dylib`abort + 180
frame #3: 0x00000001a9f68b84 libc++abi.dylib`abort_message + 132
frame #4: 0x00000001a9f583b4 libc++abi.dylib`demangling_terminate_handler() + 320
frame #5: 0x00000001a9c2f03c libobjc.A.dylib`_objc_terminate() + 160
frame #6: 0x00000001a9f67f48 libc++abi.dylib`std::__terminate(void (*)()) + 16
frame #7: 0x00000001a9f6ad34 libc++abi.dylib`__cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 36
frame #8: 0x00000001a9f6ace0 libc++abi.dylib`__cxa_throw + 140
frame #9: 0x00000001a9ee68b4 libc++.1.dylib`std::__1::__throw_system_error(int, char const*) + 100
frame #10: 0x00000001a9edaf88 libc++.1.dylib`std::__1::mutex::lock() + 40
frame #11: 0x0000000123e7d844 libMoltenVK.dylib`MVKDevice::updateActivityPerformance(MVKPerformanceTracker&, unsigned long long, unsigned long long) + 56
frame #12: 0x0000000123ec5264 libMoltenVK.dylib`MVKMetalCompiler::compile(std::__1::unique_lock<std::__1::mutex>&, void () block_pointer) + 700
frame #13: 0x0000000123e8ba10 libMoltenVK.dylib`MVKRenderPipelineCompiler::newMTLRenderPipelineState(MTLRenderPipelineDescriptor*) + 108
frame #14: 0x0000000123e8b958 libMoltenVK.dylib`MVKGraphicsPipeline::getOrCompilePipeline(MTLRenderPipelineDescriptor*, id<MTLRenderPipelineState>&) + 192
frame #15: 0x0000000123e8b1b8 libMoltenVK.dylib`MVKGraphicsPipeline::initMTLRenderPipelineState(VkGraphicsPipelineCreateInfo const*, mvk::SPIRVTessReflectionData const&) + 1684
frame #16: 0x0000000123e89b10 libMoltenVK.dylib`MVKGraphicsPipeline::MVKGraphicsPipeline(MVKDevice*, MVKPipelineCache*, MVKPipeline*, VkGraphicsPipelineCreateInfo const*) + 696
frame #17: 0x0000000123e7cb1c libMoltenVK.dylib`VkResult MVKDevice::createPipelines<MVKGraphicsPipeline, VkGraphicsPipelineCreateInfo>(VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) + 164
frame #18: 0x0000000123e19f8c libMoltenVK.dylib`vkCreateGraphicsPipelines + 112
frame #19: 0x0000000102b39d74 impeller_unittests`impeller::PipelineCacheVK::CreatePipeline(impeller::vk::GraphicsPipelineCreateInfo const&) [inlined] impeller::vk::ResultValue<impeller::vk::UniqueHandle<impeller::vk::Pipeline, impeller::vk::DispatchLoaderDynamic> > impeller::vk::Device::createGraphicsPipelineUnique<impeller::vk::DispatchLoaderDynamic>(this=0x000000015eae0768, pipelineCache=(m_pipelineCache = 0x000000015eae07e0), createInfo=0x00000001701ce448, allocator=Optional<const impeller::vk::AllocationCallbacks> @ 0x00000001701cd170, d=0x000000010449c800) const at vulkan_funcs.hpp:2383:23
frame #20: 0x0000000102b39c80 impeller_unittests`impeller::PipelineCacheVK::CreatePipeline(this=0x000000015eae0758, info=0x00000001701ce448) at pipeline_cache_vk.cc:116:37
frame #21: 0x0000000102b41e6c impeller_unittests`impeller::PipelineLibraryVK::CreatePipeline(this=0x000000015eadb1a0, desc=0x0000000127e61398) at pipeline_library_vk.cc:318:31
frame #22: 0x0000000102b615a4 impeller_unittests`impeller::PipelineLibraryVK::GetPipeline(this=0x0000000127e61398)::$_0::operator()() const at pipeline_library_vk.cc:368:52
frame #23: 0x0000000102b614a4 impeller_unittests`decltype(__f=0x0000000127e61398)::$_0&>()()) std::_LIBCPP_ABI_NAMESPACE::__invoke[abi:v15000]<impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0&>(impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0&) at invoke.h:403:23
frame #24: 0x0000000102b613ec impeller_unittests`void std::_LIBCPP_ABI_NAMESPACE::__invoke_void_return_wrapper<void, true>::__call<impeller::PipelineLibraryVK::GetPipeline(__args=0x0000000127e61398)::$_0&>(impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0&) at invoke.h:488:9
frame #25: 0x0000000102b61394 impeller_unittests`std::_LIBCPP_ABI_NAMESPACE::__function::__alloc_func<impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0, std::_LIBCPP_ABI_NAMESPACE::allocator<impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0>, void ()>::operator(this=0x0000000127e61398)[abi:v15000]() at function.h:185:16
frame #26: 0x0000000102b5eea4 impeller_unittests`std::_LIBCPP_ABI_NAMESPACE::__function::__func<impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0, std::_LIBCPP_ABI_NAMESPACE::allocator<impeller::PipelineLibraryVK::GetPipeline(impeller::PipelineDescriptor)::$_0>, void ()>::operator(this=0x0000000127e61390)() at function.h:359:12
frame #27: 0x0000000100380b08 impeller_unittests`std::_LIBCPP_ABI_NAMESPACE::__function::__value_func<void ()>::operator(this=0x00000001701cee68)[abi:v15000]() const at function.h:512:16
frame #28: 0x0000000100380a18 impeller_unittests`std::_LIBCPP_ABI_NAMESPACE::function<void ()>::operator(this=0x00000001701cee68)() const at function.h:1187:12
frame #29: 0x00000001005a1a90 impeller_unittests`fml::ConcurrentMessageLoop::WorkerMain(this=0x000000015eb18ae0) at concurrent_message_loop.cc:106:7
frame #30: 0x00000001005aaed8 impeller_unittests`fml::ConcurrentMessageLoop::ConcurrentMessageLoop(this=0x0000000126bca9e8)::$_0::operator()() const at concurrent_message_loop.cc:26:7
frame #31: 0x00000001005aadb4 impeller_unittests`decltype(__f=0x0000000126bca9e8)::$_0>()()) std::_LIBCPP_ABI_NAMESPACE::__invoke[abi:v15000]<fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>(fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0&&) at invoke.h:403:23
frame #32: 0x00000001005aad00 impeller_unittests`void std::_LIBCPP_ABI_NAMESPACE::__thread_execute[abi:v15000]<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>(__t=0x0000000126bca9e0, (null)=__tuple_indices<> @ 0x00000001701cef77)::$_0>&, std::_LIBCPP_ABI_NAMESPACE::__tuple_indices<>) at thread:284:5
frame #33: 0x00000001005a9f2c impeller_unittests`void* std::_LIBCPP_ABI_NAMESPACE::__thread_proxy[abi:v15000]<std::_LIBCPP_ABI_NAMESPACE::tuple<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0> >(__vp=0x0000000126bca9e0) at thread:295:5
frame #34: 0x00000001a9faffa8 libsystem_pthread.dylib`_pthread_start + 148
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: flakeTests that sometimes, but not always, incorrectly passTests that sometimes, but not always, incorrectly passe: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.