daa84 / neovim-gtk

gtk ui for neovim
GNU General Public License v3.0
718 stars 57 forks source link

Crash when trying to middle-click-paste if clipboard is empty #274

Open quantenzitrone opened 1 year ago

quantenzitrone commented 1 year ago

Describe the bug I was able to reproduce the crash several times, but currently not. Maybe you can derive something from the stack trace. Steps to possibly reproduce:

Technical information (please complete the following information):

Trace

$> env RUST_BACKTRACE=full nvim-gtk --no-fork
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine
[2023-04-03T06:08:39Z ERROR nvim_gtk::highlight] unknown attribute nocombine

(NeovimGtk:266587): Gtk-WARNING **: 08:08:41.082: Allocating size to GtkPopover 0x559ea9b20610 without calling gtk_widget_measure(). How does the code know the size to allocate?
thread 'main' panicked at 'Neovim request None timed out', src/nvim/ext.rs:43:21
stack backtrace:
0:     0x559ea8e11d79 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::haaf5fb1112692432
1:     0x559ea8e4752e - core::fmt::write::hc9810906af1f037c
2:     0x559ea8e25375 - std::io::Write::write_fmt::h42570a50d1c05a1d
3:     0x559ea8e11b35 - std::sys_common::backtrace::print::hdb4dd2f5727cb1da
4:     0x559ea8e3278f - std::panicking::default_hook::{{closure}}::hbf6435d4555f4c42
5:     0x559ea8e324b5 - std::panicking::default_hook::hb6b577f7a430b818
6:     0x559ea8e32daf - std::panicking::rust_panic_with_hook::h2dbb792ca6451cd5
7:     0x559ea8e120e9 - std::panicking::begin_panic_handler::{{closure}}::h78627a3718fcdf2c
8:     0x559ea8e11ecc - std::sys_common::backtrace::__rust_end_short_backtrace::h79f584276ca2060b
9:     0x559ea8e32942 - rust_begin_unwind
10:     0x559ea8b61a03 - core::panicking::panic_fmt::ha005c52a737c94d3
11:     0x559ea8b79c87 - nvim_gtk::tabline::State::switch_page::he3bf299e6722aac5
12:     0x559ea8bab344 - gtk4::auto::notebook::Notebook::connect_switch_page::switch_page_trampoline::h4df623379617a9f2
13:     0x7f4232452420 - g_closure_invoke
14:     0x7f42324653d6 - signal_emit_unlocked_R.isra.0
15:     0x7f423246c2ed - g_signal_emit_valist
16:     0x7f423246c56f - g_signal_emit
17:     0x7f4231df2044 - gtk_notebook_gesture_pressed
18:     0x7f4231cc8aa9 - _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv
19:     0x7f4232452619 - _g_closure_invoke_va
20:     0x7f423246c2b7 - g_signal_emit_valist
21:     0x7f423246c56f - g_signal_emit
22:     0x7f4231d932cf - gtk_gesture_click_begin
23:     0x7f42324553c2 - g_cclosure_marshal_VOID__BOXEDv
24:     0x7f4232452619 - _g_closure_invoke_va
25:     0x7f423246c2b7 - g_signal_emit_valist
26:     0x7f423246c56f - g_signal_emit
27:     0x7f4231d8fe2e - _gtk_gesture_check_recognized
28:     0x7f4231d913f5 - gtk_gesture_handle_event
29:     0x7f4231d94393 - gtk_gesture_single_handle_event
30:     0x7f4231d63ca6 - gtk_event_controller_handle_event
31:     0x7f4231eea768 - gtk_widget_run_controllers
32:     0x7f4231ef1db4 - _gtk_widget_captured_event
33:     0x7f4231ddae6e - gtk_propagate_event_internal
34:     0x7f4231ddb52b - gtk_main_do_event
35:     0x7f4231efdcdc - surface_event
36:     0x7f4231fe2249 - _gdk_marshal_BOOLEAN__POINTER
37:     0x7f4232056c2f - gdk_surface_event_marshaller
38:     0x7f4232452420 - g_closure_invoke
39:     0x7f42324653d6 - signal_emit_unlocked_R.isra.0
40:     0x7f423246bbd5 - g_signal_emit_valist
41:     0x7f423246c56f - g_signal_emit
42:     0x7f423205a280 - gdk_surface_handle_event
43:     0x7f4232029bea - gdk_event_source_dispatch
44:     0x7f42317fb609 - g_main_context_dispatch
45:     0x7f42317fb898 - g_main_context_iterate.constprop.0
46:     0x7f42317fb92c - g_main_context_iteration
47:     0x7f42319c2f5d - g_application_run
48:     0x559ea8b95335 - <O as gio::application::ApplicationExtManual>::run::h89d70d4beb2f5a93
49:     0x559ea8c19873 - nvim_gtk::main::h7aaf42ab25790f1d
50:     0x559ea8c7e9e3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h586f7b05541498ba
51:     0x559ea8b7da99 - std::rt::lang_start::{{closure}}::hb317fe2c5d9b7e73
52:     0x559ea8e244b4 - std::rt::lang_start_internal::h62a41a9744fc6640
53:     0x559ea8c19ea5 - main
54:     0x7f423142924e - __libc_start_call_main
55:     0x7f4231429309 - __libc_start_main_alias_1
56:     0x559ea8b61fc5 - _start
57:                0x0 - <unknown>

Addition I found this when testing out different neovim guis and i don't think I'm going to use neovim-gtk, so I'm probably not going to be able to help much further. My current rudimental half-working config for neovim is here, but since it is done through nixvim, it is probably pretty cryptic to any non-nix user.