gpui-component icon indicating copy to clipboard operation
gpui-component copied to clipboard

Panics with input text field

Open brookman opened this issue 1 month ago • 3 comments

While playing with the examples/input (unmodified code) I ran into two panics.

[dependencies]
anyhow = "1.0.100"
gpui = "0.2.2"
gpui-component = "0.3.1"
cargo 1.90.0 (840b83a10 2025-07-30)
rustc 1.90.0 (1159e78c4 2025-09-14)
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.3 LTS
Release:	24.04
Codename:	noble

Panic 1

thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ropey-2.0.0-beta.1/src/rope.rs:694:59:
index is out of bounds
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

How to reproduce:

  • Run the example with cargo run -r
  • Randomly type and delete text in the input text field
  • Happens rarely

Panic 2

thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67:
Encoding Error: Utf8Error(FromUtf8Error { bytes: [168], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } })
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

How to reproduce:

  • Run the example with cargo run -r
  • Select the text field and hold the ! key to enter a bunch of exclamations marks
  • Press CTRL+A
  • Hint: I only seem to be able to reproduce it with when the keyboard layout is set to German (Switzerland). It doesn't happen with English (US).

My code:

use gpui::*;
use gpui_component::{
    input::{InputEvent, InputState, TextInput},
    *,
};

pub struct Example {
    input_state: Entity<InputState>,
    display_text: SharedString,

    /// We need to keep the subscriptions alive with the Example entity.
    ///
    /// So if the Example entity is dropped, the subscriptions are also dropped.
    /// This is important to avoid memory leaks.
    _subscriptions: Vec<Subscription>,
}

impl Example {
    fn new(window: &mut Window, cx: &mut Context<Self>) -> Self {
        let input_state = cx.new(|cx| InputState::new(window, cx).placeholder("Enter your name"));

        let _subscriptions = vec![cx.subscribe_in(&input_state, window, {
            let input_state = input_state.clone();
            move |this, _, ev: &InputEvent, _window, cx| match ev {
                InputEvent::Change => {
                    let value = input_state.read(cx).value();
                    this.display_text = format!("Hello, {}!", value).into();
                    cx.notify()
                }
                _ => {}
            }
        })];

        Self {
            input_state,
            display_text: SharedString::default(),
            _subscriptions,
        }
    }
}

impl Render for Example {
    fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
        v_flex()
            .p_5()
            .gap_2()
            .size_full()
            .items_center()
            .justify_center()
            .child(TextInput::new(&self.input_state))
            .child(self.display_text.clone())
    }
}

fn main() {
    let app = Application::new();

    app.run(move |cx| {
        // This must be called before using any GPUI Component features.
        gpui_component::init(cx);

        let window_options = WindowOptions {
            window_bounds: Some(WindowBounds::centered(size(px(800.), px(600.)), cx)),
            ..Default::default()
        };

        cx.spawn(async move |cx| {
            cx.open_window(window_options, |window, cx| {
                let view = cx.new(|cx| Example::new(window, cx));
                // This first level on the window, should be a Root.
                cx.new(|cx| Root::new(view.into(), window, cx))
            })?;

            Ok::<_, anyhow::Error>(())
        })
        .detach();
    });
}

brookman avatar Oct 27 '25 12:10 brookman

I have just test on macOS, but not reproduce.

Would you please enable RUST_BACKTRACE=1 and submit more crash backtrace to me?

huacnlee avatar Oct 27 '25 12:10 huacnlee

This is for the second panic. I can't reproduce the first one anymore RUST_BACKTRACE=1

thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67:
Encoding Error: Utf8Error(FromUtf8Error { bytes: [168], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } })
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: zed_xim::client::handle_request
   4: gpui::platform::linux::x11::client::X11Client::process_x11_events
   5: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events
   6: calloop::loop_logic::EventLoop<Data>::run
   7: <gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run
   8: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run
   9: gpui::app::Application::run
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

RUST_BACKTRACE=full

thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67:
Encoding Error: Utf8Error(FromUtf8Error { bytes: [168], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } })
stack backtrace:
   0:     0x628fa25e5852 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hdcfcb6d4c8489523
   1:     0x628fa2613153 - core::fmt::write::h8a494366950f23bb
   2:     0x628fa25e0c73 - std::io::Write::write_fmt::h6556609fca33d0b1
   3:     0x628fa25e56a2 - std::sys::backtrace::BacktraceLock::print::hb2a626a81e06b2dc
   4:     0x628fa25e6f03 - std::panicking::default_hook::{{closure}}::h4f78485264f12d10
   5:     0x628fa25e6ce5 - std::panicking::default_hook::h2c66fc99e962531d
   6:     0x628fa25e7915 - std::panicking::rust_panic_with_hook::h33ac55f64bbd807d
   7:     0x628fa25e76aa - std::panicking::begin_panic_handler::{{closure}}::h30e7cb89678a57fe
   8:     0x628fa25e5d59 - std::sys::backtrace::__rust_end_short_backtrace::hed60f27456c16ced
   9:     0x628fa25e733d - __rustc[de2ca18b4c54d5b8]::rust_begin_unwind
  10:     0x628fa2610110 - core::panicking::panic_fmt::h62f63d096dd276af
  11:     0x628fa2610536 - core::result::unwrap_failed::h95bc3f5a607b2c95
  12:     0x628fa1994759 - zed_xim::client::handle_request::h4bb1d750b40690cf
  13:     0x628fa19af1a3 - gpui::platform::linux::x11::client::X11Client::process_x11_events::h4a3faf855ef9bd9a
  14:     0x628fa19c00ca - <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::hca9e2f7c0b48382a
  15:     0x628fa1c1e977 - calloop::loop_logic::EventLoop<Data>::run::h4c5dcf6d6b204642
  16:     0x628fa19b5641 - <gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h9a7ff65affbdcfbc
  17:     0x628fa199ae73 - gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hb9c3d77594190cef
  18:     0x628fa14cf921 - gpui::app::Application::run::h10693890802e1809
  19:     0x628fa14e81d3 - std::sys::backtrace::__rust_begin_short_backtrace::hfe1c9e4389ce9a83
  20:     0x628fa14dd909 - std::rt::lang_start::{{closure}}::ha05ffc861fbec461
  21:     0x628fa25d7470 - std::rt::lang_start_internal::h34f9328d113fd60a
  22:     0x628fa14e5035 - main
  23:     0x71623c82a1ca - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  24:     0x71623c82a28b - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  25:     0x628fa14c0a55 - _start
  26:                0x0 - <unknown>

And in debug mode:

thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67:
Encoding Error: Utf8Error(FromUtf8Error { bytes: [168], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } })
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:697:5
   1: core::panicking::panic_fmt
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:75:14
   2: core::result::unwrap_failed
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:1765:5
   3: core::result::Result<T,E>::expect
             at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1119:23
   4: zed_xim::client::handle_request
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67
   5: zed_xim::x11rb::X11rbClient<C>::handle_xim_protocol
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/x11rb.rs:597:13
   6: zed_xim::x11rb::X11rbClient<C>::filter_event
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/x11rb.rs:564:26
   7: gpui::platform::linux::x11::client::X11Client::process_x11_events
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:633:41
   8: gpui::platform::linux::x11::client::X11Client::new::{{closure}}
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:448:32
   9: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::{{closure}}
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/mod.rs:327:61
  10: <calloop::sources::generic::Generic<F,E> as calloop::sources::EventSource>::process_events
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/generic.rs:290:9
  11: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/mod.rs:327:14
  12: calloop::loop_logic::EventLoop<Data>::dispatch_events
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:445:36
  13: calloop::loop_logic::EventLoop<Data>::dispatch
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:559:14
  14: calloop::loop_logic::EventLoop<Data>::run
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:596:18
  15: <gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:1607:20
  16: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/platform.rs:165:9
  17: gpui::app::Application::run
             at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/app.rs:180:18
  18: toki_ui::main
             at ./src/main.rs:58:9
  19: core::ops::function::FnOnce::call_once
             at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:253:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67:
Encoding Error: Utf8Error(FromUtf8Error { bytes: [168], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } })
stack backtrace:
   0:     0x634e3925a3a2 - std::backtrace_rs::backtrace::libunwind::trace::h2d45396358f41939
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x634e3925a3a2 - std::backtrace_rs::backtrace::trace_unsynchronized::hffcefc0b67f1d6e2
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x634e3925a3a2 - std::sys::backtrace::_print_fmt::hd72f71d23b436b92
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:66:9
   3:     0x634e3925a3a2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hdcfcb6d4c8489523
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:39:26
   4:     0x634e39288223 - core::fmt::rt::Argument::fmt::h2c56b3114963061a
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/fmt/rt.rs:173:76
   5:     0x634e39288223 - core::fmt::write::h8a494366950f23bb
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/fmt/mod.rs:1468:25
   6:     0x634e39255783 - std::io::default_write_fmt::ha27fbccbc65eb6fa
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/io/mod.rs:639:11
   7:     0x634e39255783 - std::io::Write::write_fmt::h6556609fca33d0b1
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/io/mod.rs:1954:13
   8:     0x634e3925a1f2 - std::sys::backtrace::BacktraceLock::print::hb2a626a81e06b2dc
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:42:9
   9:     0x634e3925ba53 - std::panicking::default_hook::{{closure}}::h4f78485264f12d10
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:300:27
  10:     0x634e3925b835 - std::panicking::default_hook::h2c66fc99e962531d
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:327:9
  11:     0x634e3925c465 - std::panicking::rust_panic_with_hook::h33ac55f64bbd807d
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:833:13
  12:     0x634e3925c1fa - std::panicking::begin_panic_handler::{{closure}}::h30e7cb89678a57fe
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:706:13
  13:     0x634e3925a8a9 - std::sys::backtrace::__rust_end_short_backtrace::hed60f27456c16ced
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:174:18
  14:     0x634e3925be8d - __rustc[de2ca18b4c54d5b8]::rust_begin_unwind
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:697:5
  15:     0x634e392850c0 - core::panicking::panic_fmt::h62f63d096dd276af
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:75:14
  16:     0x634e392855d6 - core::result::unwrap_failed::h95bc3f5a607b2c95
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:1765:5
  17:     0x634e370644bd - core::result::Result<T,E>::expect::he347e11fc53abcb6
                               at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1119:23
  18:     0x634e372784c0 - zed_xim::client::handle_request::h7f9c69787c08214b
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/client.rs:237:67
  19:     0x634e372743e9 - zed_xim::x11rb::X11rbClient<C>::handle_xim_protocol::h4b9f943a652868fd
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/x11rb.rs:597:13
  20:     0x634e372733a4 - zed_xim::x11rb::X11rbClient<C>::filter_event::h2e1c24f36aebfb6a
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zed-xim-0.4.0-zed/src/x11rb.rs:564:26
  21:     0x634e372b61c4 - gpui::platform::linux::x11::client::X11Client::process_x11_events::h50e6f37070398a81
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:633:41
  22:     0x634e372b48de - gpui::platform::linux::x11::client::X11Client::new::{{closure}}::h556adaeb0a67012b
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:448:32
  23:     0x634e371b57d2 - <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::{{closure}}::h47765465178d4f8b
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/mod.rs:327:61
  24:     0x634e36c1a4a4 - <calloop::sources::generic::Generic<F,E> as calloop::sources::EventSource>::process_events::h94b82d727955f78d
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/generic.rs:290:9
  25:     0x634e36f0ad6b - <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::hbb0819888a62a623
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/sources/mod.rs:327:14
  26:     0x634e36f40a91 - calloop::loop_logic::EventLoop<Data>::dispatch_events::h115e439d59c3629c
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:445:36
  27:     0x634e36f4a7f0 - calloop::loop_logic::EventLoop<Data>::dispatch::h2ba451db41a673ab
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:559:14
  28:     0x634e36f48670 - calloop::loop_logic::EventLoop<Data>::run::h0c09528bc80826a9
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/calloop-0.13.0/src/loop_logic.rs:596:18
  29:     0x634e372c4a3c - <gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h95adb5400e677516
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/x11/client.rs:1607:20
  30:     0x634e37296e03 - gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::h4685993431691983
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/platform/linux/platform.rs:165:9
  31:     0x634e3615210a - gpui::app::Application::run::h6589fa60b46f42bd
                               at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gpui-0.2.2/src/app.rs:180:18
  32:     0x634e3614ad03 - toki_ui::main::hf6407a8cfe7a284c
                               at /home/user/code/toki-ui/src/main.rs:58:9
  33:     0x634e36149f0b - core::ops::function::FnOnce::call_once::h68e72dac23b6154a
                               at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:253:5
  34:     0x634e3615bf2e - std::sys::backtrace::__rust_begin_short_backtrace::h40c3de61a7bd07dc
                               at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:158:18
  35:     0x634e36151841 - std::rt::lang_start::{{closure}}::hcf500a6d1207bc76
                               at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
  36:     0x634e3924c370 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h638295a043b40957
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/ops/function.rs:290:21
  37:     0x634e3924c370 - std::panicking::catch_unwind::do_call::hbd68098bdea1ca50
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:589:40
  38:     0x634e3924c370 - std::panicking::catch_unwind::h50591d85bf847c7c
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:552:19
  39:     0x634e3924c370 - std::panic::catch_unwind::h2487b4c4f2ae22c6
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panic.rs:359:14
  40:     0x634e3924c370 - std::rt::lang_start_internal::{{closure}}::h61f0945cc6c9a811
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/rt.rs:175:24
  41:     0x634e3924c370 - std::panicking::catch_unwind::do_call::h34b9c3722acd6bd1
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:589:40
  42:     0x634e3924c370 - std::panicking::catch_unwind::hf9a822ea043fb0d6
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:552:19
  43:     0x634e3924c370 - std::panic::catch_unwind::h5b3cac802237ed89
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panic.rs:359:14
  44:     0x634e3924c370 - std::rt::lang_start_internal::h34f9328d113fd60a
                               at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/rt.rs:171:5
  45:     0x634e36151827 - std::rt::lang_start::h18c6db10fc00255f
                               at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:205:5
  46:     0x634e3614ad2e - main
  47:     0x71fc99a2a1ca - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  48:     0x71fc99a2a28b - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  49:     0x634e36148e25 - _start
  50:                0x0 - <unknown>

brookman avatar Oct 27 '25 12:10 brookman

The panic happens in zed-xim-0.4.0-zed/src/client.rs on line 237 with preedit_string containing ASCII code 168 which is ¨ (German umlaut). This is the same key which types ! with my keyboard layout.

Image

I could narrow down the reproduction steps:

  • select the text field.
  • Type the ¨ key (German umlaut)
  • It does not happen when I copy-paste the character
  • I can only reproduce it on Ubuntu. It doesn't happen on MacOS

brookman avatar Oct 27 '25 13:10 brookman