Skip to content

[X11] Winit 0.29.11 panics or SIGSEGVs when the main thread is busy #3536

@kjarosh

Description

@kjarosh

When the main thread is busy doing work and a lot of X11 events are generated, winit crashes. It is either a panic or a SIGSEGV.

That's a regression, as 0.29.10 worked fine.

Reproduction:

  1. Move the cursor fiercely when the main thread is busy
thread 'main' panicked at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/event_processor.rs:1185:21:
attempt to multiply with overflow
stack backtrace:
   0:     0x556d9184abd6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hcbaeac7247bf8173
   1:     0x556d9187c4f0 - core::fmt::write::h8b490acb5bdc50a9
   2:     0x556d9184595d - std::io::Write::write_fmt::h07de2b72e411632a
   3:     0x556d9184a965 - std::sys_common::backtrace::print::h9a3eb2b838be2212
   4:     0x556d9184c5d3 - std::panicking::default_hook::{{closure}}::h2166f617792c0284
   5:     0x556d9184c314 - std::panicking::default_hook::h4952bb7ccb53c0a3
   6:     0x556d8d281bf3 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h03f0c2ba38a2e2e2
                               at /builddir/build/BUILD/rustc-1.76.0-src/library/alloc/src/boxed.rs:2029:9
   7:     0x556d8d2a7db2 - ruffle_desktop::init::{{closure}}::hde0a232abe05077b
                               at ~/repos/ruffle/desktop/src/main.rs:65:9
   8:     0x556d9184cc7b - std::panicking::rust_panic_with_hook::h9cb4b30448d9f73f
   9:     0x556d9184c9b9 - std::panicking::begin_panic_handler::{{closure}}::h4adc3510d10f90a2
  10:     0x556d9184b0b6 - std::sys_common::backtrace::__rust_end_short_backtrace::h22be74f3163fbf67
  11:     0x556d9184c770 - rust_begin_unwind
  12:     0x556d8d1f4ac5 - core::panicking::panic_fmt::hdc52888f3f8c7b11
  13:     0x556d8d1f4b83 - core::panicking::panic::hbc18712d7482c722
  14:     0x556d8d36831d - winit::platform_impl::platform::x11::event_processor::EventProcessor<T>::xinput2_mouse_motion::h38e442750a486d04
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/event_processor.rs:1185:21
  15:     0x556d8d35b450 - winit::platform_impl::platform::x11::event_processor::EventProcessor<T>::process_xevent::hb35306ba36879798
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/event_processor.rs:219:25
  16:     0x556d8d356ad3 - winit::platform_impl::platform::x11::event_processor::EventProcessor<T>::process_event::h2073e83de05294d8
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/event_processor.rs:79:9
  17:     0x556d8d286d6b - winit::platform_impl::platform::x11::EventLoop<T>::drain_events::h5418ecd6a272664f
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/mod.rs:623:13
  18:     0x556d8d28767b - winit::platform_impl::platform::x11::EventLoop<T>::single_iteration::h29b7fe2f02326a40
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/mod.rs:554:9
  19:     0x556d8d288fa5 - winit::platform_impl::platform::x11::EventLoop<T>::poll_events_with_timeout::h60682279f6460a7d
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/mod.rs:538:9
  20:     0x556d8d286a6f - winit::platform_impl::platform::x11::EventLoop<T>::pump_events::h27d596a93ee2b08d
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/mod.rs:444:13
  21:     0x556d8d287245 - winit::platform_impl::platform::x11::EventLoop<T>::run_on_demand::hc16ad0c2d648fb76
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/x11/mod.rs:405:19
  22:     0x556d8d3a41fe - winit::platform_impl::platform::EventLoop<T>::run_on_demand::h958628deee6046ee
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/mod.rs:829:56
  23:     0x556d8d3a4a76 - winit::platform_impl::platform::EventLoop<T>::run::hf846a3237d4ee0e7
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/platform_impl/linux/mod.rs:822:9
  24:     0x556d8d39bfb7 - winit::event_loop::EventLoop<T>::run::h67d14f59f28796d5
                               at ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.11/src/event_loop.rs:249:9

Metadata

Metadata

Assignees

No one assigned

    Labels

    B - crashThe bug results in crashingB - regressionDS - x11Affects the X11 backend, or generally free Unix platforms

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions