zed
zed copied to clipboard
panic: ERROR_OUT_OF_POOL_MEMORY on Windows
Check for existing issues
- [X] Completed
Describe the bug / provide steps to reproduce it
Seemingly random crashes occur at any time
built from commit 8583c3bd94f4797395c1266f9f56bd4b5586cecd
Thread "main" panicked with "called `Result::unwrap()` on an `Err` value: ERROR_OUT_OF_POOL_MEMORY" at \.cargo\git\checkouts\blade-b2bcd1de1cf7ab6a\61cbd6b\blade-graphics\src\vulkan\command.rs:708:18
0: backtrace::backtrace::dbghelp::trace
at \.cargo\registry\src\index.crates.io-6f17d22bba15001f\backtrace-0.3.69\src\backtrace\dbghelp.rs:98
1: backtrace::backtrace::trace_unsynchronized
at \.cargo\registry\src\index.crates.io-6f17d22bba15001f\backtrace-0.3.69\src\backtrace\mod.rs:66
2: backtrace::backtrace::trace
at \.cargo\registry\src\index.crates.io-6f17d22bba15001f\backtrace-0.3.69\src\backtrace\mod.rs:53
3: backtrace::capture::Backtrace::create
at \.cargo\registry\src\index.crates.io-6f17d22bba15001f\backtrace-0.3.69\src\capture.rs:176
4: backtrace::capture::Backtrace::new
at\.cargo\registry\src\index.crates.io-6f17d22bba15001f\backtrace-0.3.69\src\capture.rs:140
5: Zed::init_panic_hook::closure$0
at crates\zed\src\main.rs:624
6: alloc::boxed::impl$49::call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\alloc\src\boxed.rs:2029
7: std::panicking::rust_panic_with_hook
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panicking.rs:785
8: std::panicking::begin_panic_handler::closure$0
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panicking.rs:659
9: std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\sys_common\backtrace.rs:171
10: std::panicking::begin_panic_handler
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panicking.rs:647
11: core::panicking::panic_fmt
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\core\src\panicking.rs:72
12: core::result::unwrap_failed
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\core\src\result.rs:1649
13: core::result::Result::unwrap
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\core\src\result.rs:1073
14: blade_graphics::hal::command::impl$19::bind
at \.cargo\git\checkouts\blade-b2bcd1de1cf7ab6a\61cbd6b\blade-graphics\src\vulkan\command.rs:704
15: blade_graphics::hal::PipelineEncoder::bind
at \.cargo\git\checkouts\blade-b2bcd1de1cf7ab6a\61cbd6b\blade-graphics\src\vulkan\command.rs:688
16: gpui::platform::blade::blade_renderer::BladeRenderer::draw
at crates\gpui\src\platform\blade\blade_renderer.rs:617
17: gpui::platform::windows::window::impl$5::draw
at crates\gpui\src\platform\windows\window.rs:1552
18: gpui::window::impl$15::new::closure$2
at crates\gpui\src\window.rs:475
19: alloc::boxed::impl$48::call_mut
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\alloc\src\boxed.rs:2022
20: gpui::platform::windows::window::WindowsWindowInner::handle_paint_msg
at crates\gpui\src\platform\windows\window.rs:358
21: gpui::platform::windows::window::WindowsWindowInner::handle_msg
at crates\gpui\src\platform\windows\window.rs:262
22: gpui::platform::windows::window::wnd_proc
at crates\gpui\src\platform\windows\window.rs:1763
23: DispatchMessageW
24: CallWindowProcW
25: wglSwapBuffers
26: DispatchMessageW
27: DispatchMessageW
28: GetClassLongW
29: KiUserCallbackDispatcher
30: NtUserRedrawWindow
31: gpui::platform::windows::platform::impl$3::run
at crates\gpui\src\platform\windows\platform.rs:231
32: gpui::app::App::run<Zed::main::closure_env$3>
at crates\gpui\src\app.rs:142
33: Zed::main
at crates\zed\src\main.rs:127
34: core::ops::function::FnOnce::call_once
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\core\src\ops\function.rs:250
35: std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\std\src\sys_common\backtrace.rs:155
36: std::rt::lang_start::closure$0
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\std\src\rt.rs:166
37: core::ops::function::FnOnce::call_once
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\core\src\ops\function.rs:250
38: core::ops::function::FnOnce::call_once<std::rt::lang_start::closure_env$0<tuple$<> >,tuple$<> >
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\std\src\rt.rs:166
39: std::rt::lang_start_internal::closure$2
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\rt.rs:148
40: std::panicking::try::do_call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panicking.rs:554
41: std::panicking::try
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panicking.rs:518
42: std::panic::catch_unwind
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\panic.rs:142
43: std::rt::lang_start_internal
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\std\src\rt.rs:148
44: main
45: invoke_main
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
46: __scrt_common_main_seh
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
47: BaseThreadInitThunk
48: RtlUserThreadStart
error: process didn't exit successfully: `target\release\Zed.exe` (exit code: 0xffffffff)
Environment
Zed: v0.129.0 (Zed Dev) OS: Windows 10.0.22631 Memory: 15.8 GiB Architecture: x86_64 Processor: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42 GHz
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
No response
This is still occurring when built from commit ca187c8.
Try patch blade-graphics
https://github.com/kvark/blade/blob/e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c/blade-graphics/src/vulkan/mod.rs#L340C1-L343C64
from
let descriptor_pool_info = vk::DescriptorPoolCreateInfo::default()
.max_sets(ROUGH_SET_COUNT)
.pool_sizes(&descriptor_sizes)
.push_next(&mut inline_uniform_block_info);
to
let descriptor_pool_info = vk::DescriptorPoolCreateInfo::default()
.max_sets(ROUGH_SET_COUNT)
.flags(vk::DescriptorPoolCreateFlags::FREE_DESCRIPTOR_SET)
.pool_sizes(&descriptor_sizes)
.push_next(&mut inline_uniform_block_info);
This panic disappeared.
I'm not very familiar with Vulkan, I guess that this issue might be due to DescriptorSets on Windows not being released when calling vkResetDescriptorPool, causing them to exceed the maximum value set by VkDescriptorPoolCreateInfo::maxSets, leading to a panic with VK_ERROR_OUT_OF_POOL_MEMORY.
Just experienced it with dev build on aee00d41d87cbca851055fbb2f14d2e46edb09a8