From 8a71bc161e49813ed893b64f748afb7d1f0e68f3 Mon Sep 17 00:00:00 2001 From: Taimuraz Kaitmazov Date: Mon, 8 Jul 2024 08:40:09 +0300 Subject: [PATCH] linux: Fix dropping action when action is just started (#13840) ``` Thread "main" panicked with "divide by zero error when dividing duration by scalar" at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/time.rs:1172:31 0: zed::reliability::init_panic_hook::{{closure}} at crates/zed/src/reliability.rs:58:29 1: as core::ops::function::Fn>::call at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/alloc/src/boxed.rs:2036:9 std::panicking::rust_panic_with_hook at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:799:13 2: std::panicking::begin_panic_handler::{{closure}} at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:664:13 3: std::sys_common::backtrace::__rust_end_short_backtrace at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/sys_common/backtrace.rs:171:18 4: rust_begin_unwind at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:652:5 5: core::panicking::panic_fmt at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/panicking.rs:72:14 6: core::panicking::panic_display at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/panicking.rs:263:5 7: core::option::expect_failed at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/option.rs:1994:5 8: core::option::Option::expect at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/option.rs:895:21 >::div at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/time.rs:1172:31 9: >::event::{{closure}} at crates/gpui/src/platform/linux/wayland/client.rs:1211:63 10: > as calloop::sources::EventDispatcher>::process_events::{{closure}} at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/mod.rs:327:61 11: ::process_events at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/timer.rs:122:38 12: > as calloop::sources::EventDispatcher>::process_events at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/mod.rs:326:9 13: calloop::loop_logic::EventLoop::dispatch_events at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:445:31 14: calloop::loop_logic::EventLoop::dispatch at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:559:9 15: calloop::loop_logic::EventLoop::run at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:596:13 16: ::run at crates/gpui/src/platform/linux/wayland/client.rs:655:9 17: gpui::platform::linux::platform::::run at crates/gpui/src/platform/linux/platform.rs:153:9 18: gpui::app::App::run at crates/gpui/src/app.rs:140:9 19: zed::main at crates/zed/src/main.rs:382:5 20: core::ops::function::FnOnce::call_once at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/ops/function.rs:250:5 21: std::sys_common::backtrace::__rust_begin_short_backtrace at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/sys_common/backtrace.rs:155:18 22: std::rt::lang_start::{{closure}} at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:159:18 23: core::ops::function::impls:: for &F>::call_once at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/ops/function.rs:284:13 std::panicking::try::do_call at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:559:40 std::panicking::try at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:523:19 std::panic::catch_unwind at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panic.rs:149:14 std::rt::lang_start_internal::{{closure}} at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:141:48 std::panicking::try::do_call at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:559:40 std::panicking::try at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:523:19 std::panic::catch_unwind at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panic.rs:149:14 std::rt::lang_start_internal at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:141:20 24: std::rt::lang_start at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:158:17 25: main 26: __libc_start_call_main 27: __libc_start_main_impl 28: _start ``` This error was happening when I started typing. This PR fixes this error. Fedora 40, latest kernel, gnome 46, wayland. Release Notes: - N/A --- crates/gpui/src/platform/linux/wayland/client.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/gpui/src/platform/linux/wayland/client.rs b/crates/gpui/src/platform/linux/wayland/client.rs index 62fb6ccc8888a2df87d8e6642d62715c989a6e64..ab3573540a83ea54792c205ba319dc5a49b38c8f 100644 --- a/crates/gpui/src/platform/linux/wayland/client.rs +++ b/crates/gpui/src/platform/linux/wayland/client.rs @@ -1194,7 +1194,7 @@ impl Dispatch for WaylandClientStatePtr { && state.repeat.current_keycode.is_some() && state.keyboard_focused_window.is_some(); - if !is_repeating { + if !is_repeating || rate == 0 { return TimeoutAction::Drop; }