-
Notifications
You must be signed in to change notification settings - Fork 2k
Crash when changing a viewport aspect, that requires window recreation #3959
Copy link
Copy link
Closed
Labels
crashcrash, panic, segfault, freeze, …crash, panic, segfault, freeze, …egui_glowRelates to running egui_glow on nativeRelates to running egui_glow on nativenative-windowsRunning on native Windows OSRunning on native Windows OSviewportsmultiple viewports, viewports APImultiple viewports, viewports API
Description
Description
When changing something on a viewport, that requires the recreation of the viewport window in order to apply the change, the application crashes.
I have only observed it on the glow backend, since the wgpu crashes immediately for me.
Sometimes I am getting a stack trace with a handle error and other times the application simply closes without any additional output.
The provided example changes, whether the viewport should show the close button or not (which internally requires the recreation of the viewport window).
Stacktrace
thread 'main' panicked at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\glow_integration.rs:815:69:
called `Result::unwrap()` on an `Err` value: Error { raw_code: Some(6), raw_os_message: Some("Das Handle ist ungültig. (os error 6)"), kind: Misc }
stack backtrace:
0: std::panicking::begin_panic_handler
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library\std\src\panicking.rs:645
1: core::panicking::panic_fmt
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library\core\src\panicking.rs:72
2: core::result::unwrap_failed
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library\core\src\result.rs:1653
3: enum2$<core::result::Result<enum2$<glutin::context::PossiblyCurrentContext>,glutin::error::Error> >::unwrap<enum2$<glutin::context::PossiblyCurrentContext>,glutin::error::Error>
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\result.rs:1077
4: eframe::native::glow_integration::change_gl_context
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\glow_integration.rs:815
5: eframe::native::glow_integration::GlowWinitRunning::run_ui_and_paint
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\glow_integration.rs:621
6: eframe::native::glow_integration::impl$1::run_ui_and_paint
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\glow_integration.rs:402
7: eframe::native::run::run_and_return::closure$0<eframe::native::glow_integration::GlowWinitApp>
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:99
8: winit::platform_impl::platform::event_loop::impl$3::run_on_demand::closure$0<enum2$<eframe::native::winit_integration::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::glow_integration::GlowWinitApp> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:236
9: alloc::boxed::impl$48::call_mut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::winit_integration::UserEvent> > > >,dyn$<core::ops::function::FnMut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::winit_integration::UserEvent> > > >,assoc
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\alloc\src\boxed.rs:2014
10: winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure$0<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop\runner.rs:250
11: core::panic::unwind_safe::impl$23::call_once<tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::winit_integration::UserEvent> > >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\panic\unwind_safe.rs:272
12: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::winit_integration::UserEvent> > >,tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panicking.rs:552
13: glutin::api::wgl::surface::impl$2::resize<glutin::surface::WindowSurface>
14: std::panicking::try<tuple$<>,core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::winit_integration::UserEvent> > > >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panicking.rs:516
15: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::winit_integration::UserEvent> > >,tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panic.rs:142
16: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::winit_integration::UserEvent> >::catch_unwind<enum2$<eframe::native::winit_integration::UserEvent>,tuple$<>,winit::platform_impl::platform::event_loop::runner::impl
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop\runner.rs:183
17: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::winit_integration::UserEvent> >::call_event_handler<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop\runner.rs:246
18: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::winit_integration::UserEvent> >::send_event<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop\runner.rs:224
19: winit::platform_impl::platform::event_loop::WindowData<enum2$<eframe::native::winit_integration::UserEvent> >::send_event<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:112
20: winit::platform_impl::platform::event_loop::public_window_callback_inner::closure$4<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:1145
21: core::ops::function::FnOnce::call_once<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<enum2$<eframe::native::winit_integration::UserEvent> >,tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\ops\function.rs:250
22: core::panic::unwind_safe::impl$23::call_once<tuple$<>,winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<enum2$<eframe::native::winit_integration::UserEvent> > >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\panic\unwind_safe.rs:272
23: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<enum2$<eframe::native::winit_integration::UserEvent> > >,tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panicking.rs:552
24: glutin::api::wgl::surface::impl$2::resize<glutin::surface::WindowSurface>
25: std::panicking::try<tuple$<>,core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<enum2$<eframe::native::winit_integration::UserEvent> > > >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panicking.rs:516
26: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<enum2$<eframe::native::winit_integration::UserEvent> > >,tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\panic.rs:142
27: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::winit_integration::UserEvent> >::catch_unwind<enum2$<eframe::native::winit_integration::UserEvent>,tuple$<>,winit::platform_impl::platform::event_loop::public_windo
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop\runner.rs:183
28: winit::platform_impl::platform::event_loop::public_window_callback_inner<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:2286
29: winit::platform_impl::platform::event_loop::public_window_callback<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:984
30: CallWindowProcW
31: DispatchMessageW
32: SendMessageTimeoutW
33: KiUserCallbackDispatcher
34: NtUserDispatchMessage
35: DispatchMessageW
36: winit::platform_impl::platform::event_loop::EventLoop<enum2$<eframe::native::winit_integration::UserEvent> >::dispatch_peeked_messages<enum2$<eframe::native::winit_integration::UserEvent> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:449
37: winit::platform_impl::platform::event_loop::EventLoop<enum2$<eframe::native::winit_integration::UserEvent> >::run_on_demand<enum2$<eframe::native::winit_integration::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::glow_integr
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform_impl\windows\event_loop.rs:247
38: winit::platform::run_on_demand::impl$0::run_on_demand<enum2$<eframe::native::winit_integration::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::glow_integration::GlowWinitApp> >
at C:\Users\Nathan\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.10\src\platform\run_on_demand.rs:80
39: eframe::native::run::run_and_return<eframe::native::glow_integration::GlowWinitApp>
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:76
40: eframe::native::run::run_glow::closure$0
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:394
41: eframe::native::run::with_event_loop::closure$0<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::run_glow::closure_env$0>
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:58
42: std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::winit_integration::UserEvent> > > > > >::try_with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\thread\local.rs:270
43: std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::winit_integration::UserEvent> > > > > >::with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enu
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\std\src\thread\local.rs:246
44: eframe::native::run::with_event_loop<enum2$<core::result::Result<tuple$<>,enum2$<eframe::Error> > >,eframe::native::run::run_glow::closure_env$0>
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:48
45: eframe::native::run::run_glow
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\native\run.rs:392
46: eframe::run_native
at C:\Users\Nathan\.cargo\git\checkouts\egui-5e4507fa4153be06\114f820\crates\eframe\src\lib.rs:262
47: egui_window_recreate_bug::main
at .\src\main.rs:11
48: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\ops\function.rs:250
49: core::hint::black_box
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112\library\core\src\hint.rs:286
Steps to reproduce the behaviour
- run the provided example
- click the checkbox on the main window
- observe the crash
Platform
- Windows 10
- RX7600 driver version 23.12.1
Example
egui_window_recreate_bug.zip
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
crashcrash, panic, segfault, freeze, …crash, panic, segfault, freeze, …egui_glowRelates to running egui_glow on nativeRelates to running egui_glow on nativenative-windowsRunning on native Windows OSRunning on native Windows OSviewportsmultiple viewports, viewports APImultiple viewports, viewports API