You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I had my game running and my laptop went to sleep for a couple hours. When I logged back in the app panicked with the following message:
thread 'main' panicked at /Users/caylebray/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/core-foundation-0.9.4/src/uuid.rs:27:1:
Attempted to create a NULL object.
Anecdotally, after resuming my app on ios after a long time it pauses for a bit and crashes, so it could be related.
Rust Backtrace:
2025-03-12T08:42:24.523314Z INFO physiboids::ship::auto_spawn_player_n: Spawning player 1
2025-03-12T08:42:24.545897Z INFO physiboids::gui::egui_ui: Margins changed, updating viewport: UiMargins { left: 276.0, right: 0.0, top: 0.0, bottom: 0.0 }
2025-03-12T08:42:24.545934Z INFO physiboids::gui::egui_ui: Setting viewport to UVec2(3561, 1900) UVec2(38, 0)
2025-03-12T08:42:41.742840Z INFO bevy_winit::system: Monitor removed 74v1#4294967370
2025-03-12T08:42:41.742864Z INFO bevy_winit::system: Monitor removed 75v1#4294967371
thread 'main' panicked at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-0.9.4/src/uuid.rs:27:1:
Attempted to create a NULL object.
stack backtrace:
0: std::panicking::begin_panic
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:737:5
1: <core_foundation::uuid::CFUUID as core_foundation::base::TCFType>::wrap_under_create_rule
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-0.9.4/src/lib.rs:110:17
2: winit::platform_impl::macos::monitor::MonitorHandle::uuid
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:110:13
3: winit::platform_impl::macos::monitor::MonitorHandle::ns_screen::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:326:21
4: core::iter::traits::iterator::Iterator::find::check::{{closure}}
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2829:20
5: core::iter::traits::iterator::Iterator::try_fold
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2370:21
6: core::iter::traits::iterator::Iterator::find
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2833:9
7: winit::platform_impl::macos::monitor::MonitorHandle::ns_screen
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:323:9
8: winit::platform_impl::macos::monitor::MonitorHandle::scale_factor::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:230:19
9: objc2_foundation::thread::run_on_main
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-foundation-0.2.2/src/thread.rs:113:9
10: winit::platform_impl::macos::monitor::MonitorHandle::scale_factor
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:229:9
11: winit::platform_impl::macos::monitor::MonitorHandle::size
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/monitor.rs:215:77
12: winit::monitor::MonitorHandle::size
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/monitor.rs:119:9
13: bevy_winit::system::create_monitors
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_winit-0.15.2/src/system.rs:173:20
14: <bevy_winit::state::WinitAppRunnerState<T> as winit::application::ApplicationHandler<T>>::about_to_wait
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_winit-0.15.2/src/state.rs:446:9
15: winit::event_loop::dispatch_event_for_app
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/event_loop.rs:647:31
16: winit::event_loop::EventLoop<T>::run_app::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/event_loop.rs:265:49
17: winit::platform_impl::macos::event_loop::map_user_event::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:174:22
18: <alloc::boxed::Box<F,A> as core::ops::function::FnMut<Args>>::call_mut
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1979:9
19: winit::platform_impl::macos::event_handler::EventHandler::handle_event
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_handler.rs:125:17
20: winit::platform_impl::macos::app_state::ApplicationDelegate::handle_event
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/app_state.rs:322:9
21: winit::platform_impl::macos::app_state::ApplicationDelegate::cleared
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/app_state.rs:390:9
22: winit::platform_impl::macos::observer::control_flow_end_handler::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/observer.rs:84:21
23: winit::platform_impl::macos::observer::control_flow_handler::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/observer.rs:46:9
24: std::panicking::try::do_call
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:557:40
25: ___rust_try
26: std::panicking::try
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:520:19
27: std::panic::catch_unwind
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panic.rs:358:14
28: winit::platform_impl::macos::event_loop::stop_app_on_panic
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:432:11
29: winit::platform_impl::macos::observer::control_flow_handler
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/observer.rs:44:5
30: winit::platform_impl::macos::observer::control_flow_end_handler
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/observer.rs:79:9
31: <unknown>
34: <unknown>
35: <unknown>
36: <unknown>
37: <unknown>
38: <unknown>
39: <unknown>
40: <unknown>
41: <() as objc2::encode::EncodeArguments>::__invoke
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/encode.rs:437:26
42: objc2::runtime::message_receiver::msg_send_primitive::send
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/runtime/message_receiver.rs:173:18
43: objc2::runtime::message_receiver::MessageReceiver::send_message
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/runtime/message_receiver.rs:433:38
44: objc2::__macro_helpers::msg_send::MsgSend::send_message
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/__macro_helpers/msg_send.rs:27:31
45: objc2_app_kit::generated::__NSApplication::NSApplication::run
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/macros/extern_methods.rs:247:14
46: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand::{{closure}}::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:303:26
47: objc2::rc::autorelease::autoreleasepool
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.5.2/src/rc/autorelease.rs:438:15
48: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand::{{closure}}
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:289:13
49: winit::platform_impl::macos::event_handler::EventHandler::set
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_handler.rs:98:9
50: winit::platform_impl::macos::app_state::ApplicationDelegate::set_event_handler
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/app_state.rs:191:9
51: winit::platform_impl::macos::event_loop::EventLoop<T>::run_on_demand
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:288:9
52: winit::platform_impl::macos::event_loop::EventLoop<T>::run
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/platform_impl/macos/event_loop.rs:275:9
53: winit::event_loop::EventLoop<T>::run_app
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.9/src/event_loop.rs:265:9
54: bevy_winit::state::winit_runner
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_winit-0.15.2/src/state.rs:862:23
55: core::ops::function::FnOnce::call_once
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
56: core::ops::function::FnOnce::call_once{{vtable.shim}}
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
57: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1972:9
58: bevy_app::app::App::run
at /Users/rj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.15.2/src/app.rs:170:9
59: physiboids::main
at ./src/main.rs:93:5
60: core::ops::function::FnOnce::call_once
at /Users/rj/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Device and iOS version
Macbook Pro M3 Max
Winit version
0.30.9
The text was updated successfully, but these errors were encountered:
Braymatter
changed the title
iOS/MacOs - Putting System to Sleep / Suspending Causes MonitorHandle::uuid to panic
MacOs - Putting System to Sleep / Suspending Causes MonitorHandle::uuid to panic
Mar 17, 2025
I suspect that what's happening here is winit is attempting to assign a UUID to each monitor, and generating and using up a new one even on failure due to the monitor being asleep. This depletes the supply of UUIDs (in addition to wasting work), leading to an eventual panic.
I'm not familiar with this code though: this is just informed speculation from an upstream maintainer <3
I think rather the issue is that we call CGDisplayCreateUUIDFromDisplayID all the time, instead of caching it.
Maybe we should just have two fields on MonitorHandle (CGDirectDisplayID and CFRetained<CFUUID>)?
Or actually, why are we even storing the CGDirectDisplayID in the first place? Maybe we should just only store the UUID, and use CGDisplayGetDisplayIDFromUUID whenever we need to perform an operation on the display?
Description
Originally created here: bevyengine/bevy#17827
I had my game running and my laptop went to sleep for a couple hours. When I logged back in the app panicked with the following message:
thread 'main' panicked at /Users/caylebray/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/core-foundation-0.9.4/src/uuid.rs:27:1:
Attempted to create a NULL object.
Anecdotally, after resuming my app on ios after a long time it pauses for a bit and crashes, so it could be related.
Rust Backtrace:
Device and iOS version
Macbook Pro M3 Max
Winit version
0.30.9
The text was updated successfully, but these errors were encountered: