vhakulinen / gnvim

GUI for neovim, without any web bloat
MIT License
1.86k stars 68 forks source link

Crash when using tab #185

Closed ontologiae closed 2 years ago

ontologiae commented 3 years ago

Way to reproduce :

Start Gnvim in vim : :tabnew (2 times) With the mouse choose a tab. I'v got a crash :

$ rustc --version
rustc 1.56.1 (59eed8a2a 2021-11-01)

$ gnvim 
thread 'main' panicked at 'already borrowed: BorrowMutError', src/ui/tabline.rs:120:14
stack backtrace:
   0: rust_begin_unwind
             at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:517:5
   1: core::panicking::panic_fmt
             at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/panicking.rs:101:14
   2: core::result::unwrap_failed
             at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/result.rs:1617:5
   3: gnvim::ui::tabline::Tabline::update
   4: gnvim::ui::state::UIState::handle_redraw_event
   5: gnvim::ui::state::UIState::handle_notify
   6: glib::main_context_channel::dispatch
   7: g_main_context_dispatch
   8: <unknown>
   9: g_main_context_iteration
  10: g_application_run
  11: <O as gio::application::ApplicationExtManual>::run_with_args
  12: gnvim::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Full stacktrace :


$ gnvim 
thread 'main' panicked at 'already borrowed: BorrowMutError', src/ui/tabline.rs:120:14
stack backtrace:
   0:     0x5587d259450c - std::backtrace_rs::backtrace::libunwind::trace::h3fea1eb2e0ba2ac9
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
   1:     0x5587d259450c - std::backtrace_rs::backtrace::trace_unsynchronized::h849d83492cbc0d59
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x5587d259450c - std::sys_common::backtrace::_print_fmt::he3179d37290f23d3
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x5587d259450c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h140f6925cad14324
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x5587d25b5ecc - core::fmt::write::h31b9cd1bedd7ea38
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/fmt/mod.rs:1150:17
   5:     0x5587d2592055 - std::io::Write::write_fmt::h1fdf66f83f70913e
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/io/mod.rs:1667:15
   6:     0x5587d2595ed0 - std::sys_common::backtrace::_print::he7ac492cd19c3189
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x5587d2595ed0 - std::sys_common::backtrace::print::hba20f8920229d8e8
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x5587d2595ed0 - std::panicking::default_hook::{{closure}}::h714d63979ae18678
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:210:50
   9:     0x5587d2595a87 - std::panicking::default_hook::hf1afb64e69563ca8
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:227:9
  10:     0x5587d2596584 - std::panicking::rust_panic_with_hook::h02231a501e274a13
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:624:17
  11:     0x5587d2596060 - std::panicking::begin_panic_handler::{{closure}}::h5b5e738edf361af7
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:521:13
  12:     0x5587d25949d4 - std::sys_common::backtrace::__rust_end_short_backtrace::h601a115def7987b1
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/sys_common/backtrace.rs:141:18
  13:     0x5587d2595fc9 - rust_begin_unwind
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:517:5
  14:     0x5587d242e891 - core::panicking::panic_fmt::h7a58c8fffc5559a4
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/panicking.rs:101:14
  15:     0x5587d242e983 - core::result::unwrap_failed::h1036b5c6eb8030dd
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/result.rs:1617:5
  16:     0x5587d248762b - gnvim::ui::tabline::Tabline::update::he43f9bf09c156ed2
  17:     0x5587d245244c - gnvim::ui::state::UIState::handle_redraw_event::hdab5ae25ba89680d
  18:     0x5587d244cfd6 - gnvim::ui::state::UIState::handle_notify::h4ad3dc11d1394c6c
  19:     0x5587d2467a7d - glib::main_context_channel::dispatch::hf192e38e198170de
  20:     0x7f00ebbb78eb - g_main_context_dispatch
  21:     0x7f00ebc0ad28 - <unknown>
  22:     0x7f00ebbb5023 - g_main_context_iteration
  23:     0x7f00eb05d27d - g_application_run
  24:     0x5587d2471ad0 - <O as gio::application::ApplicationExtManual>::run_with_args::h32994230bbdb9211
  25:     0x5587d2488481 - gnvim::main::h9bc9d54b9baf33c1
  26:     0x5587d248f823 - std::sys_common::backtrace::__rust_begin_short_backtrace::h264c567e0b056001
  27:     0x5587d2437519 - std::rt::lang_start::{{closure}}::h32966b9ba9447ada
  28:     0x5587d2596a8a - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h2790017aba790142
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/core/src/ops/function.rs:259:13
  29:     0x5587d2596a8a - std::panicking::try::do_call::hd5d0fbb7d2d2d85d
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:403:40
  30:     0x5587d2596a8a - std::panicking::try::h675520ee37b0fdf7
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:367:19
  31:     0x5587d2596a8a - std::panic::catch_unwind::h803430ea0284ce79
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panic.rs:129:14
  32:     0x5587d2596a8a - std::rt::lang_start_internal::{{closure}}::h3a398a8154de3106
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/rt.rs:45:48
  33:     0x5587d2596a8a - std::panicking::try::do_call::hf60f106700df94b2
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:403:40
  34:     0x5587d2596a8a - std::panicking::try::hb2022d2bc87a9867
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panicking.rs:367:19
  35:     0x5587d2596a8a - std::panic::catch_unwind::hbf801c9d61f0c2fb
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/panic.rs:129:14
  36:     0x5587d2596a8a - std::rt::lang_start_internal::hdd488b91dc742b96
                               at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35/library/std/src/rt.rs:45:20
  37:     0x5587d2488942 - main
  38:     0x7f00eac29565 - __libc_start_main
  39:     0x5587d242f04e - _start
  40:                0x0 - <unknown>
vhakulinen commented 2 years ago

Gnvim was rewritten from ground up for gtk4. If the problem persists, feel free to reopen this issue.